Function at 0x53bdf0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x86b204
mov eax, dword fs:[0]
push eax
mov eax, 0x24f4
call fcn.00807150
mov eax, dword [0x8ce6f4]
xor eax, esp
mov dword [esp + 0x24f0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x8ce6f4]
xor eax, esp
push eax
lea eax, [esp + 0x2508]
mov dword fs:[0], eax
mov edi, dword [esp + 0x2518]
mov eax, dword [esp + 0x2520]
xor ebx, ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x80], eax
xor ebp, ebp
mov dword [esp + 0x14], ebx
lea ecx, [esp + 0x98]
mov dword [esp + 0x2510], ebp
call fcn.005323b0
push 4
push 0x408790
lea edx, [esp + 0xa0]
mov ecx, 0x50
push 0x21
push edx
mov dword [esp + 0x24f8], 2
mov dword [esp + 0x24fc], 4
mov word [esp + 0x24f4], cx
call fcn.004aee60
add esp, 0x10
call fcn.007cff5d
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x53beb9
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x2510], 1
call fcn.007cff5d
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x53beeb
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x251c]
mov byte [esp + 0x2510], 2
cmp dword [ecx - 0xc], ebp
jl 0x53cb58
push 0x404c48
push ecx
call fcn.0080292f
mov ecx, dword [esp + 0x2524]
add esp, 8
cmp eax, ebp
je 0x53cb4f
sub eax, ecx
sar eax, 1
js 0x53cb4f
push ebp
push ecx
lea ecx, [esp + 0xa0]
call fcn.00536170
lea ecx, [esp + 0x98]
push 0x411ce0
push ecx
call fcn.00801f5b
add esp, 8
test eax, eax
jne 0x53bfc2
push 0x40dc30
mov ecx, edi
call fcn.0050c640
lea eax, [esi - 0x10]
or ecx, 0xffffffff
lea edx, [eax + 0xc]
mov byte [esp + 0x2510], 1
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x53bf91
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x2510], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53d225
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x53d225
lea ecx, [esp + 0x98]
push 0x411cd8
push ecx
call fcn.00801f5b
add esp, 8
test eax, eax
jne 0x53bfe2
push 0x40dc48
jmp 0x53bf66
lea ecx, [esp + 0x98]
push 0x408790
push ecx
call fcn.00801f5b
add esp, 8
test eax, eax
je 0x53c005
push 0x404c62
jmp 0x53bf66
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], ebp
call fcn.005345e0
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], 0x101
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
push 0x20019
push 0x411c60
push reloc.DSOUND.dll_DirectSoundCreate
lea ecx, [esp + 0x80]
mov byte [esp + 0x251c], 4
call fcn.004afb40
mov edi, 0x100
test eax, eax
jne 0x53c2b5
lea ecx, [esp + 0x3c]
push ecx
push 0x411c48
lea ecx, [esp + 0x7c]
call fcn.004eb2a0
test eax, eax
jne 0x53c2b5
cmp dword [esp + 0x3c], ebp
je 0x53c2b5
mov esi, dword [esp + 0x2c]
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x53c0a2
push edi
lea ecx, [esp + 0x30]
call fcn.004a8a90
mov esi, dword [esp + 0x2c]
cmp dword [esi - 8], edi
jge 0x53c0b1
push 0x80070057
call fcn.004a8210
lea eax, [esp + 0x20]
push eax
push esi
xor edx, edx
mov dword [esi - 0xc], edi
push 0x411c30
lea ecx, [esp + 0x80]
mov word [esi + 0x200], dx
call fcn.004afbc0
test eax, eax
jne 0x53c2b9
mov ecx, dword [esp + 0x20]
push ecx
lea ecx, [esp + 0x30]
call fcn.004a8550
mov esi, 0xa
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], esi
push ebp
push 0x3b
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x30]
push ecx
mov byte [esp + 0x2524], 5
call fcn.004b6310
add esp, 0x14
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x2514], 6
call fcn.004aa540
lea ecx, [esp + 0x20]
mov byte [esp + 0x2510], 5
call fcn.004a8c20
cmp dword [esp + 0x64], 1
jbe 0x53c246
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], eax
cmp eax, ebp
je 0x53c246
lea edi, [esi - 8]
lea ebx, [ebx]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], esi
push edi
push 0x3d
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2520], 7
call fcn.005ff9f0
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.004b6310
add esp, 0x14
or ebx, edi
push 0x408790
mov ecx, eax
mov byte [esp + 0x2514], 8
mov dword [esp + 0x18], ebx
call fcn.004a89c0
test eax, eax
jne 0x53c1dd
mov byte [esp + 0x37], 1
cmp dword [esp + 0x4c], edi
je 0x53c1e2
mov byte [esp + 0x37], 0
mov dword [esp + 0x2510], 7
test bl, 2
je 0x53c202
and ebx, 0xfffffffd
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], ebx
call fcn.004a8c20
cmp byte [esp + 0x37], 0
lea ecx, [esp + 0x44]
jne 0x53c226
mov byte [esp + 0x2510], 5
call fcn.004afe70
cmp dword [esp + 0x20], ebp
jne 0x53c170
jmp 0x53c246
call fcn.005dfa00
push eax
lea ecx, [esp + 0x30]
call fcn.004aa540
lea ecx, [esp + 0x44]
mov byte [esp + 0x2510], 5
call fcn.004afe70
push ebp
push 0x3a
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x30]
push ecx
call fcn.004b6310
add esp, 0x14
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x2514], 9
call fcn.004aa540
lea ecx, [esp + 0x20]
mov byte [esp + 0x2510], 5
call fcn.004a8c20
cmp dword [esp + 0x64], 1
jbe 0x53c2a4
lea ecx, [esp + 0x5c]
call fcn.005dfa00
mov eax, dword [eax]
push esi
push ebp
push eax
call fcn.00803f42
add esp, 0xc
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2510], 4
call fcn.004afe70
mov esi, dword [esp + 0x2c]
lea ecx, [esp + 0x84]
call fcn.007dd95f
push ebp
push 0x3f
push 1
push ebp
lea ecx, [esp + 0x94]
mov byte [esp + 0x2520], 0xa
call fcn.007dd5cc
cmp dword [esp + 0x3c], ebp
je 0x53c30d
mov edi, dword [esp + 0x28]
lea eax, [esi - 0x10]
push eax
call fcn.004a9b50
add eax, 0x10
add esp, 4
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
mov byte [esp + 0x2510], 0xb
or ebx, 4
jmp 0x53c334
movzx edi, word [esp + 0x24e4]
lea edx, [esp + 0xda]
push edx
lea ecx, [esp + 0x2c]
call fcn.004a8f10
mov dword [esp + 0x2510], 0xc
or ebx, 8
mov eax, dword [eax]
push edi
push eax
lea ecx, [esp + 0x8c]
mov dword [esp + 0x1c], ebx
call fcn.007dd3b0
mov esi, eax
test bl, 8
je 0x53c35b
lea ecx, [esp + 0x28]
and ebx, 0xfffffff7
call fcn.004a8c20
mov dword [esp + 0x2510], 0xa
test bl, 4
je 0x53c374
lea ecx, [esp + 0x20]
call fcn.004a8c20
cmp esi, ebp
je 0x53cb1c
lea eax, [esp + 0xda]
push eax
lea ecx, [esp + 0x24]
call fcn.004b6720
lea ecx, [esp + 0x14e2]
push ecx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2514], 0xd
call fcn.004b6720
mov esi, eax
lea edx, [esp + 0x4e0]
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0x2514], 0xe
call fcn.004b6720
push esi
push eax
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x251c], 0xf
call fcn.004f8490
add esp, 0xc
lea ecx, [esp + 0x14]
call fcn.004a8c20
lea ecx, [esp + 0x18]
mov byte [esp + 0x2510], 0x12
call fcn.004a8c20
cmp dword [esp + 0x3c], ebp
je 0x53c44b
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x28]
push 0x40d2b0
push edx
call fcn.00537500
lea ecx, [esp + 0x34]
push ecx
push eax
lea edx, [esp + 0x54]
push edx
mov byte [esp + 0x2528], 0x13
call fcn.004f8490
add esp, 0x18
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2514], 0x14
call fcn.004b1400
lea ecx, [esp + 0x40]
call fcn.004a8c20
lea ecx, [esp + 0x24]
call fcn.004a8c20
lea ecx, [esp + 0x18]
call fcn.005345e0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x20]
push 0x411be0
push edx
mov byte [esp + 0x2520], 0x15
call fcn.004e76b0
mov eax, dword [esp + 0x28]
mov esi, dword [eax - 0xc]
add esp, 0x10
push ebp
push esi
push eax
lea ecx, [esp + 0x90]
call fcn.007dd560
cmp eax, esi
jge 0x53c508
mov esi, dword [esp + 0x38]
push 0x404c62
mov ecx, esi
call fcn.0050c640
lea ecx, [esp + 0x18]
call fcn.004a8c20
lea ecx, [esp + 0x28]
call fcn.004a8c20
lea ecx, [esp + 0x20]
call fcn.004a8c20
lea ecx, [esp + 0x84]
mov byte [esp + 0x2510], 4
call fcn.007dd97b
lea ecx, [esp + 0x74]
call fcn.004b0100
lea ecx, [esp + 0x2c]
call fcn.004a8c20
lea ecx, [esp + 0x30]
call fcn.004a8c20
lea ecx, [esp + 0x1c]
call fcn.004a8c20
lea ecx, [esp + 0x251c]
call fcn.004a8c20
mov eax, esi
jmp 0x53d251
lea ecx, [esp + 0x18]
call fcn.004b01d0
call fcn.007cff5d
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
je 0x53c60a
mov bl, 0x16
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x14], esi
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x100
or eax, ecx
mov byte [esp + 0x2510], bl
jge 0x53c564
push 0x100
lea ecx, [esp + 0x18]
call fcn.004b05e0
mov esi, dword [esp + 0x14]
push ebp
push 0x100
push esi
lea ecx, [esp + 0x90]
call fcn.007dcf7f
cmp eax, 0xffffffff
jne 0x53c589
mov eax, dword [esi - 8]
push eax
push esi
call fcn.005bc2d0
add esp, 8
cmp eax, ebp
jl 0x53c0a7
cmp eax, dword [esi - 8]
jg 0x53c0a7
mov dword [esi - 0xc], eax
mov byte [eax + esi], 0
cmp dword [esi - 0xc], ebp
je 0x53c674
mov eax, dword [esi - 0xc]
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.004e74c0
mov edi, dword [esp + 0x18]
cmp dword [edi - 0xc], ebp
jl 0x53c5d9
push 0x411bd8
push edi
call fcn.00807018
add esp, 8
cmp eax, ebp
je 0x53c5d9
sub eax, edi
mov edi, eax
jns 0x53c614
lea eax, [esi - 0x10]
mov byte [esp + 0x2510], 0x15
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53c5fd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.007cff5d
cmp eax, ebp
jne 0x53c527
push 0x80004005
call fcn.004a8210
lea ecx, [edi + 4]
push ecx
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x20]
call fcn.00535510
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x2514], 0x17
call fcn.004b10a0
lea ecx, [esp + 0x24]
mov byte [esp + 0x2510], bl
call fcn.004a8c20
push edi
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x20]
call fcn.00534560
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2514], 0x18
call fcn.004b1400
lea ecx, [esp + 0x24]
call fcn.004a8c20
lea ecx, [esp + 0x14]
call fcn.004a8c20
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], 0xa
push ebp
push 0xa
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x2524], 0x19
call fcn.00539660
add esp, 0x14
lea ecx, [esp + 0x24]
call fcn.004a8c20
mov esi, dword [esp + 0x44]
cmp esi, ebp
je 0x53c836
mov bl, 0x1a
xor eax, eax
cmp esi, ebp
setne al
cmp eax, ebp
je 0x53beaf
mov eax, esi
mov esi, dword [esi]
add eax, 8
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], 0xa
push 2
push 0x3a
lea ecx, [esp + 0x64]
push ecx
push eax
lea edx, [esp + 0x34]
push edx
mov byte [esp + 0x2524], bl
call fcn.00539660
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
add esp, 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53c742
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x60]
call fcn.00537980
mov ecx, eax
mov byte [esp + 0x2510], 0x1b
call fcn.00536520
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.004afcb0
lea edi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x2510], 0x1d
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x53c79c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x411bcc
push edi
call fcn.0080712e
add esp, 8
cmp eax, ebp
sete al
test al, al
je 0x53c7bd
cmp dword [esp + 0x64], ebp
jne 0x53c8f1
push 0x411bbc
push edi
call fcn.0080712e
add esp, 8
cmp eax, ebp
sete al
test al, al
je 0x53c7fa
cmp dword [esp + 0x64], ebp
je 0x53c7fa
mov ecx, dword [esp + 0x5c]
xor eax, eax
cmp ecx, ebp
setne al
cmp eax, ebp
je 0x53beaf
mov ecx, dword [ecx + 8]
push ecx
lea ecx, [esp + 0x20]
call fcn.004b10a0
lea eax, [edi - 0x10]
mov byte [esp + 0x2510], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53c81d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2510], 0x19
call fcn.004afe70
cmp esi, ebp
jne 0x53c6d2
mov edi, dword [esp + 0x30]
cmp dword [edi - 0xc], 0x100
jge 0x53c960
mov bl, 0x1e
lea esp, [esp]
lea ecx, [esp + 0x14]
call fcn.005345e0
mov esi, dword [esp + 0x14]
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x100
or eax, ecx
mov byte [esp + 0x2510], bl
jge 0x53c88a
push 0x100
lea ecx, [esp + 0x18]
call fcn.004b05e0
mov esi, dword [esp + 0x14]
push ebp
push 0x100
push esi
lea ecx, [esp + 0x90]
call fcn.007dcf7f
push eax
lea ecx, [esp + 0x18]
call fcn.00533c80
cmp dword [esi - 0xc], ebp
je 0x53c94f
push esi
lea ecx, [esp + 0x34]
call fcn.00537450
lea eax, [esi - 0x10]
mov byte [esp + 0x2510], 0x19
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x53c8de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x30]
cmp dword [edi - 0xc], 0x100
jl 0x53c850
jmp 0x53c960
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x5c]
push ecx
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x53c912
push 0x80004005
call fcn.004a8210
mov eax, dword [eax + 8]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.004b2080
mov esi, dword [esp + 0x40]
push esi
call fcn.0053bdf0
add esp, 0xc
lea ecx, [esp + 0x14]
call fcn.004a8c20
lea ecx, [esp + 0x5c]
call fcn.004afe70
lea ecx, [esp + 0x44]
call fcn.004afe70
jmp 0x53c4a2
lea ecx, [esp + 0x14]
mov byte [esp + 0x2510], 0x19
call fcn.004a8c20
cmp dword [edi - 0xc], 8
jl 0x53ca25
push ecx
lea eax, [edi - 0x10]
mov dword [esp + 0x28], esp
mov esi, esp
push eax
call fcn.004a9b50
lea ecx, [esp + 0x1c]
add esp, 4
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.0065c8a0
mov edx, dword [esp + 0x1c]
push 3
push 0x411bb8
push edx
mov byte [esp + 0x2524], 0x1f
call fcn.00804a4d
add esp, 0x14
test eax, eax
jne 0x53c9d3
push 0x40dc30
mov esi, dword [esp + 0x3c]
mov ecx, esi
call fcn.0050c640
lea ecx, [esp + 0x14]
call fcn.004a8c20
lea ecx, [esp + 0x44]
call fcn.004afe70
jmp 0x53c4a2
mov eax, dword [esp + 0x14]
push 4
push 0x411bb0
push eax
call fcn.00804a4d
add esp, 0xc
test eax, eax
je 0x53c9ac
mov eax, dword [esp + 0x14]
cmp dword [eax], 0x75b22630
jne 0x53c9fe
push 0x411ba0
jmp 0x53c9b1
push 4
add eax, 4
push 0x411b98
push eax
call fcn.00804a4d
add esp, 0xc
test eax, eax
jne 0x53ca1c
push 0x40db68
jmp 0x53c9b1
lea ecx, [esp + 0x14]
call fcn.004a8c20
cmp dword [esp + 0x80], ebp
je 0x53caf8
lea ecx, [esp + 0x1c]
push 0x411b7c
push ecx
call fcn.004afd20
add esp, 8
test al, al
jne 0x53ca62
lea edx, [esp + 0x1c]
push 0x411b5c
push edx
call fcn.004afd20
add esp, 8
test al, al
je 0x53caf8
cmp dword [edi - 0xc], 0x1000
jge 0x53caf8
nop
lea ecx, [esp + 0x14]
call fcn.005345e0
mov esi, dword [esp + 0x14]
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x100
or eax, ecx
mov byte [esp + 0x2510], 0x20
jge 0x53caab
push 0x100
lea ecx, [esp + 0x18]
call fcn.004b05e0
mov esi, dword [esp + 0x14]
push ebp
push 0x100
push esi
lea ecx, [esp + 0x90]
call fcn.007dcf7f
push eax
lea ecx, [esp + 0x18]
call fcn.00533c80
cmp dword [esi - 0xc], ebp
je 0x53caef
push esi
lea ecx, [esp + 0x34]
call fcn.00537450
lea ecx, [esp + 0x14]
call fcn.004a8c20
mov eax, dword [esp + 0x30]
cmp dword [eax - 0xc], 0x1000
jl 0x53ca70
jmp 0x53caf8
lea ecx, [esp + 0x14]
call fcn.004a8c20
lea ecx, [esp + 0x44]
call fcn.004afe70
lea ecx, [esp + 0x18]
call fcn.004a8c20
lea ecx, [esp + 0x28]
call fcn.004a8c20
lea ecx, [esp + 0x20]
call fcn.004a8c20
lea ecx, [esp + 0x84]
mov byte [esp + 0x2510], 4
call fcn.007dd97b
lea ecx, [esp + 0x74]
call fcn.004b0100
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2510], 2
call fcn.004a8c20
jmp 0x53ce1d
cmp dword [ecx - 0xc], ebp
je 0x53ce1d
push ecx
lea ecx, [esp + 0x2c]
call fcn.004a8f10
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2514], 0x21
call fcn.004d44d0
mov ecx, eax
mov byte [esp + 0x2510], 0x22
call fcn.004b1130
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.004a9b50
lea ebp, [eax + 0x10]
add esp, 4
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x2510], 0x24
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x53cbc4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push 0x411b50
push ecx
call fcn.004afd20
add esp, 8
test al, al
je 0x53cbe4
push 0x411b30
jmp 0x53cc8c
lea edx, [esp + 0x14]
push 0x411b24
push edx
call fcn.004afd20
add esp, 8
test al, al
je 0x53cc04
push 0x411b7c
jmp 0x53cc8c
lea eax, [esp + 0x14]
push 0x411b18
push eax
call fcn.004afd20
add esp, 8
test al, al
jne 0x53cc87
lea ecx, [esp + 0x14]
push 0x411b0c
push ecx
call fcn.004afd20
add esp, 8
test al, al
jne 0x53cc87
lea edx, [esp + 0x14]
push 0x411b00
push edx
call fcn.004afd20
add esp, 8
test al, al
je 0x53cc4d
push 0x411ac4
jmp 0x53cc8c
lea eax, [esp + 0x14]
push 0x411ab4
push eax
call fcn.004afd20
add esp, 8
test al, al
je 0x53cc6a
push 0x411a7c
jmp 0x53cc8c
lea ecx, [esp + 0x14]
push 0x40e374
push ecx
call fcn.004afd20
add esp, 8
test al, al
je 0x53cc95
push 0x411a44
jmp 0x53cc8c
push 0x411b5c
lea ecx, [esp + 0x20]
call fcn.004a8ed0
mov edx, dword [esp + 0x251c]
push 0x411a3c
push edx
lea eax, [esp + 0x44]
push eax
mov dword [esp + 0x48], 0
call fcn.008096ec
add esp, 0xc
test eax, eax
jne 0x53cdd1
call fcn.007cff5d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x53ccd9
push 0x80004005
call fcn.004a8210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x20], esi
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x2800
or eax, ecx
mov bl, 0x25
mov byte [esp + 0x2510], bl
jge 0x53cd18
push 0x2800
lea ecx, [esp + 0x24]
call fcn.004b05e0
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
push ecx
push 0x2800
push 1
push esi
call fcn.00809ce0
add esp, 0x10
test eax, eax
js 0x53c0a7
cmp eax, dword [esi - 8]
jg 0x53c0a7
mov dword [esi - 0xc], eax
push ecx
mov byte [esi + eax], 0
mov dword [esp + 0x44], esp
add esi, 0xfffffff0
mov edi, esp
push esi
call fcn.004afcb0
lea edx, [esp + 0x48]
add esp, 4
add eax, 0x10
push edx
mov dword [edi], eax
call fcn.0065c5b0
add esp, 8
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x2514], 0x26
call fcn.004aa540
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x2510], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53cda3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00809a22
add esp, 4
mov byte [esp + 0x2510], 0x24
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x53cdd1
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
lea eax, [ebp - 0x10]
mov byte [esp + 0x2510], 0x21
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53cdf5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x2510], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53ce1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, dword [esp + 0x30]
cmp dword [ebp - 0xc], 4
jl 0x53cf3d
push ecx
lea esi, [ebp - 0x10]
mov dword [esp + 0x28], esp
mov edi, esp
push esi
call fcn.004a9b50
lea ecx, [esp + 0x1c]
add esp, 4
add eax, 0x10
push ecx
mov dword [edi], eax
call fcn.0065c8a0
mov edx, dword [esp + 0x1c]
push 3
push 0x411bb8
push edx
mov byte [esp + 0x2524], 0x27
call fcn.00804a4d
add esp, 0x14
test eax, eax
jne 0x53cecf
mov edi, dword [esp + 0x38]
push 0x40dc30
mov ecx, edi
call fcn.0050c640
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x2510], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53cea5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2510], 1
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53bf91
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x53bf91
mov ecx, dword [esp + 0x14]
push 3
push 0x411a38
push ecx
call fcn.00804a4d
add esp, 0xc
test eax, eax
jne 0x53cf15
mov edi, dword [esp + 0x38]
push 0x40db78
mov ecx, edi
call fcn.0050c640
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x2510], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x53ce99
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x2510], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53cf3d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x1c]
xor esi, esi
cmp edi, esi
je 0x53d1bb
cmp dword [ebx - 0xc], esi
je 0x53d1bb
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], 0xa
mov dword [esp + 0x18], esi
lea ecx, [esp + 0x1c]
push 0x411b30
push ecx
mov byte [esp + 0x2518], 0x29
call fcn.004afd20
add esp, 8
test al, al
je 0x53d009
push 0x20
call fcn.007c8529
add esp, 4
cmp eax, esi
je 0x53cfb0
mov ecx, eax
call fcn.00534090
jmp 0x53cfb2
xor eax, eax
mov dword [esp + 0x18], eax
cmp eax, esi
je 0x53cfd9
push esi
push 0x411a0c
mov ecx, eax
call fcn.005375e0
test eax, eax
jne 0x53cfd9
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x48]
call fcn.0084fa50
push 0x20
call fcn.007c8529
add esp, 4
cmp eax, esi
je 0x53cff0
mov ecx, eax
call fcn.00534090
jmp 0x53cff2
xor eax, eax
mov dword [esp + 0x18], eax
cmp eax, esi
je 0x53d108
push esi
push 0x4119c0
jmp 0x53d0ef
lea ecx, [esp + 0x1c]
push 0x411b7c
push ecx
call fcn.004afd20
add esp, 8
test al, al
je 0x53d063
push 0x20
call fcn.007c8529
add esp, 4
cmp eax, esi
je 0x53d036
mov ecx, eax
call fcn.00534090
jmp 0x53d038
xor eax, eax
mov dword [esp + 0x18], eax
cmp eax, esi
je 0x53d108
push esi
push 0x41198c
mov ecx, eax
call fcn.005375e0
test eax, eax
jne 0x53d108
lea edx, [esp + 0x18]
push edx
jmp 0x53d0ff
lea eax, [esp + 0x1c]
push 0x411b5c
push eax
call fcn.004afd20
add esp, 8
test al, al
je 0x53d0b2
push 0x20
call fcn.007c8529
add esp, 4
cmp eax, esi
je 0x53d090
mov ecx, eax
call fcn.00534090
jmp 0x53d092
xor eax, eax
mov dword [esp + 0x18], eax
cmp eax, esi
je 0x53d108
push esi
push 0x411974
mov ecx, eax
call fcn.005375e0
test eax, eax
jne 0x53d108
lea ecx, [esp + 0x18]
push ecx
jmp 0x53d0ff
lea edx, [esp + 0x1c]
push 0x411948
push edx
call fcn.004afd20
add esp, 8
test al, al
je 0x53d108
push 0x20
call fcn.007c8529
add esp, 4
cmp eax, esi
je 0x53d0df
mov ecx, eax
call fcn.00534090
jmp 0x53d0e1
xor eax, eax
mov dword [esp + 0x18], eax
cmp eax, esi
je 0x53d108
push esi
push 0x411928
mov ecx, eax
call fcn.005375e0
test eax, eax
jne 0x53d108
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x48]
call fcn.0084fa50
cmp dword [ebp - 0xc], esi
je 0x53d1a1
mov eax, dword [esp + 0x251c]
cmp dword [eax - 0xc], esi
jl 0x53d173
push 0x404c48
push eax
call fcn.0080292f
add esp, 8
cmp eax, esi
je 0x53d173
sub eax, dword [esp + 0x251c]
sar eax, 1
js 0x53d173
lea ecx, [esp + 0x44]
push ecx
push edi
lea edx, [esp + 0x38]
push edx
push ecx
lea eax, [ebx - 0x10]
mov dword [esp + 0x34], esp
mov esi, esp
push eax
call fcn.004a9b50
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0xac]
add esp, 4
push eax
call fcn.005386a0
mov ebp, dword [esp + 0x44]
add esp, 0x14
jmp 0x53d1a1
lea ecx, [esp + 0x44]
push ecx
push edi
push ecx
lea eax, [ebx - 0x10]
mov dword [esp + 0x30], esp
mov esi, esp
push eax
call fcn.004a9b50
lea edx, [esp + 0x252c]
add esp, 4
add eax, 0x10
push edx
mov dword [esi], eax
call fcn.00538bb0
add esp, 0x10
lea ecx, [esp + 0x18]
call fcn.00536600
lea ecx, [esp + 0x44]
mov byte [esp + 0x2510], 2
call fcn.00533eb0
push ecx
lea esi, [ebx - 0x10]
mov dword [esp + 0x28], esp
mov edi, esp
push esi
call fcn.004a9b50
add eax, 0x10
mov dword [edi], eax
mov edi, dword [esp + 0x40]
add esp, 4
push edi
call fcn.0065c8a0
lea eax, [ebp - 0x10]
add esp, 8
mov byte [esp + 0x2510], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53d204
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2510], 0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53d225
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [esp + 0x251c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x2510], edx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53d24f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
mov ecx, dword [esp + 0x2508]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24f0]
xor ecx, esp
call fcn.0080262b
add esp, 0x2500
ret