Function at 0x51ebd0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xa4
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x78], esi
call fcn.004ac200
test eax, eax
je 0x51ebfb
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa4
ret 0x18
mov ebx, dword [esp + 0xb8]
mov ecx, ebx
call fcn.004ac200
test eax, eax
je 0x51ec26
mov ecx, esi
call fcn.004ac2b0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa4
ret 0x18
mov eax, dword [esi + 0x74]
mov ecx, dword [ebx + 0x74]
cmp eax, ecx
je 0x51ff7e
cmp eax, 3
jne 0x51f953
cmp ecx, 0xa
jne 0x51fb1c
mov eax, dword [esp + 0xc4]
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x58], eax
jne 0x51ec5e
add esi, 0x18
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esi]
mov ebp, dword [esi + 4]
mov edx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x60], edx
mov edx, 1
mov eax, ebp
cmp edi, edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x64], eax
jle 0x51ed0a
lea eax, [esi + 8]
jmp 0x51ec9f
mov ebp, dword [esp + 0x18]
mov edi, dword [eax + 4]
cmp edi, ebp
jge 0x51ecb7
mov edi, dword [eax]
mov ecx, edx
mov dword [esp + 0x14], edi
mov edi, dword [eax + 4]
mov dword [esp + 0x18], edi
jmp 0x51ecf7
jne 0x51ecd2
mov ebp, dword [esp + 0x14]
cmp dword [eax], ebp
jge 0x51ecd2
mov edi, dword [eax]
mov ecx, edx
mov dword [esp + 0x14], edi
mov edi, dword [eax + 4]
mov dword [esp + 0x18], edi
jmp 0x51ecf7
mov ebp, dword [esp + 0x64]
cmp ebp, edi
jl 0x51ece6
jne 0x51ecf7
mov edi, dword [esp + 0x60]
mov ebp, dword [eax]
cmp edi, ebp
jge 0x51ecf7
mov edi, dword [eax]
mov dword [esp + 0x10], edx
mov dword [esp + 0x60], edi
mov edi, dword [eax + 4]
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0xcc]
inc edx
add eax, 8
cmp edx, edi
jl 0x51ec9b
mov dword [esp + 0x50], ecx
lea eax, [ecx - 1]
lea ebp, [ecx + 1]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x30], ebp
cmp ecx, eax
jne 0x51ed29
lea edx, [edi - 1]
mov dword [esp + 0x20], edx
dec edi
cmp ecx, edi
mov dword [esp + 0x3c], edi
jne 0x51ed38
xor ebp, ebp
mov dword [esp + 0x30], ebp
mov edi, dword [esi + ebp*8 + 4]
mov ebp, dword [esp + 0x20]
mov edx, dword [esi + ecx*8]
mov dword [esp + 0x28], eax
mov ebp, dword [esi + ebp*8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
sub ebp, edx
mov dword [esp + 0x1c], eax
lea eax, [esi + ecx*8 + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], ecx
mov eax, dword [eax]
sub edi, eax
mov dword [esp + 0x54], eax
imul edi, ebp
mov ebp, dword [esp + 0x20]
mov ebp, dword [esi + ebp*8 + 4]
sub ebp, eax
mov eax, dword [esp + 0x30]
mov eax, dword [esi + eax*8]
sub eax, edx
imul ebp, eax
sub edi, ebp
test edi, edi
jle 0x51efb1
mov ebp, dword [esp + 0x10]
test ebp, ebp
jne 0x51edb1
mov edi, dword [esp + 0xcc]
mov edx, dword [esi + 4]
cmp edx, dword [esi + edi*8 - 4]
jne 0x51edda
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1c], edx
jmp 0x51edde
mov eax, dword [esi + ebp*8 + 4]
mov edx, dword [esi + ebp*8 - 4]
cmp eax, edx
jne 0x51edcd
mov edi, dword [esp + 0xcc]
lea edx, [ebp - 1]
mov dword [esp + 0x1c], edx
jmp 0x51edde
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xcc]
jmp 0x51edde
mov edx, dword [esp + 0x1c]
cmp ecx, edx
mov eax, ecx
je 0x51ee17
mov ebp, dword [esp + 0x28]
inc eax
cmp eax, edi
jne 0x51edef
xor eax, eax
inc ebp
cmp eax, edx
jne 0x51ede8
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x10]
test ecx, ecx
jne 0x51ee1d
mov ecx, dword [esi + 4]
mov eax, dword [esi + edi*8 - 4]
cmp ecx, eax
jne 0x51ee33
mov eax, edx
mov dword [esp + 0x34], eax
jmp 0x51ee37
mov edx, dword [esp + 0x3c]
jmp 0x51ee00
mov eax, dword [esp + 0x54]
mov edi, dword [esi + ecx*8 - 4]
cmp eax, edi
jne 0x51ee33
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], eax
jmp 0x51ee37
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x51ee50
mov ecx, dword [esp + 0x38]
dec eax
cmp eax, 0xffffffff
jne 0x51ee47
mov eax, edx
inc ecx
cmp eax, ebp
jne 0x51ee3f
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x28]
lea ebp, [ecx + 1]
shl ebp, 4
push ebp
call fcn.0054a1d0
mov edx, dword [esp + 0x3c]
mov edi, eax
mov dword [esp + 0x50], edi
lea eax, [edx + 1]
shl eax, 4
push eax
mov dword [esp + 0x28], eax
call fcn.0054a1d0
push ebp
mov dword [esp + 0x54], eax
call fcn.0054a1d0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
push eax
call fcn.0054a1d0
mov edx, dword [esp + 0x60]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x2c]
add esp, 0x10
cmp edx, eax
mov eax, dword [esp + 0xbc]
je 0x51ef2a
mov ebx, dword [esp + 0x24]
mov ebp, edi
sub edi, ebx
mov dword [esp + 0x30], ebp
lea ecx, [ebx + 8]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0xcc]
mov ebx, edx
inc edx
cmp edx, edi
jne 0x51eecf
xor edx, edx
mov edi, dword [esi + ebx*8]
add ecx, 0x10
mov dword [ebp], edi
mov edi, dword [esi + ebx*8 + 4]
mov dword [ebp + 4], edi
mov edi, dword [esp + 0x20]
mov ebp, dword [esi + edx*8]
mov dword [edi + ecx - 0x10], ebp
mov ebp, dword [esi + edx*8 + 4]
mov dword [edi + ecx - 0xc], ebp
mov edi, dword [eax + ebx*8]
mov dword [ecx - 0x18], edi
mov edi, dword [eax + ebx*8 + 4]
mov ebp, dword [esp + 0x30]
mov dword [ecx - 0x14], edi
mov edi, dword [eax + edx*8]
add ebp, 0x10
mov dword [ecx - 0x10], edi
mov edi, dword [eax + edx*8 + 4]
mov dword [ecx - 0xc], edi
mov edi, dword [esp + 0x1c]
cmp edx, edi
mov dword [esp + 0x30], ebp
jne 0x51eebf
mov ebx, dword [esp + 0xb8]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
je 0x51f1b0
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
mov ebp, edi
mov dword [esp + 0x30], edi
sub ebp, ebx
lea ecx, [ebx + 8]
mov dword [esp + 0x20], ebp
mov ebx, edx
dec edx
cmp edx, 0xffffffff
jne 0x51ef5d
mov edx, dword [esp + 0x3c]
mov ebp, dword [esi + ebx*8]
add ecx, 0x10
mov dword [edi], ebp
mov ebp, dword [esi + ebx*8 + 4]
mov dword [edi + 4], ebp
mov edi, dword [esp + 0x20]
mov ebp, dword [esi + edx*8]
mov dword [edi + ecx - 0x10], ebp
mov ebp, dword [esi + edx*8 + 4]
mov dword [edi + ecx - 0xc], ebp
mov edi, dword [eax + ebx*8]
mov dword [ecx - 0x18], edi
mov edi, dword [eax + ebx*8 + 4]
mov dword [ecx - 0x14], edi
mov edi, dword [eax + edx*8]
mov ebx, dword [esp + 0x10]
mov dword [ecx - 0x10], edi
mov edi, dword [eax + edx*8 + 4]
mov dword [ecx - 0xc], edi
mov edi, dword [esp + 0x30]
add edi, 0x10
cmp edx, ebx
mov dword [esp + 0x30], edi
jne 0x51ef51
jmp 0x51f1a5
mov edi, dword [esp + 0x3c]
cmp ecx, edi
jne 0x51efcc
mov edx, dword [esp + 0x54]
mov eax, dword [esi + 4]
cmp edx, eax
jne 0x51efe1
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x51efe5
mov eax, dword [esp + 0x54]
mov edx, dword [esi + ecx*8 + 0xc]
cmp eax, edx
jne 0x51efe1
lea eax, [ecx + 1]
mov dword [esp + 0x34], eax
jmp 0x51efe5
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
cmp eax, edx
je 0x51f006
mov ebp, dword [esp + 0x38]
inc eax
cmp eax, dword [esp + 0xcc]
jne 0x51effd
xor eax, eax
inc ebp
cmp eax, edx
jne 0x51eff1
mov dword [esp + 0x38], ebp
cmp edx, edi
jne 0x51f01d
mov edx, dword [esi + edx*8 + 4]
mov eax, dword [esi + 4]
cmp edx, eax
jne 0x51f032
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x51f036
mov eax, dword [esi + edx*8 + 4]
mov ebp, dword [esi + edx*8 + 0xc]
cmp eax, ebp
jne 0x51f032
lea eax, [edx + 1]
mov dword [esp + 0x1c], eax
jmp 0x51f036
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
cmp ecx, eax
je 0x51f04f
dec ecx
cmp ecx, 0xffffffff
jne 0x51f046
mov ecx, edi
inc ebp
cmp ecx, eax
jne 0x51f03e
mov dword [esp + 0x28], ebp
inc ebp
shl ebp, 4
push ebp
call fcn.0054a1d0
mov ecx, dword [esp + 0x3c]
mov edi, eax
mov dword [esp + 0x50], edi
lea eax, [ecx + 1]
shl eax, 4
push eax
mov dword [esp + 0x28], eax
call fcn.0054a1d0
push ebp
mov dword [esp + 0x54], eax
call fcn.0054a1d0
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
push edx
call fcn.0054a1d0
mov edx, dword [esp + 0x44]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x20]
add esp, 0x10
cmp edx, eax
mov eax, dword [esp + 0xbc]
je 0x51f12a
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x44]
mov ebx, edi
mov dword [esp + 0x30], edi
sub ebx, ebp
lea ecx, [ebp + 8]
mov dword [esp + 0x20], ebx
mov ebp, dword [esp + 0xcc]
mov ebx, edx
inc edx
cmp edx, ebp
jne 0x51f0d0
xor edx, edx
mov ebp, dword [esi + ebx*8]
add ecx, 0x10
mov dword [edi], ebp
mov ebp, dword [esi + ebx*8 + 4]
mov dword [edi + 4], ebp
mov edi, dword [esp + 0x20]
mov ebp, dword [esi + edx*8]
mov dword [ecx + edi - 0x10], ebp
mov ebp, dword [esi + edx*8 + 4]
mov dword [ecx + edi - 0xc], ebp
mov edi, dword [eax + ebx*8]
mov dword [ecx - 0x18], edi
mov edi, dword [eax + ebx*8 + 4]
mov dword [ecx - 0x14], edi
mov edi, dword [eax + edx*8]
mov ebx, dword [esp + 0x10]
mov dword [ecx - 0x10], edi
mov edi, dword [eax + edx*8 + 4]
mov dword [ecx - 0xc], edi
mov edi, dword [esp + 0x30]
add edi, 0x10
cmp edx, ebx
mov dword [esp + 0x30], edi
jne 0x51f0c0
mov ebx, dword [esp + 0xb8]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x1c]
cmp edx, ecx
je 0x51f1b0
mov ebx, dword [esp + 0x24]
mov ebp, edi
sub edi, ebx
mov dword [esp + 0x30], ebp
lea ecx, [ebx + 8]
mov dword [esp + 0x20], edi
mov ebx, edx
dec edx
cmp edx, 0xffffffff
jne 0x51f155
mov edx, dword [esp + 0x3c]
mov edi, dword [esi + ebx*8]
add ecx, 0x10
mov dword [ebp], edi
mov edi, dword [esi + ebx*8 + 4]
mov dword [ebp + 4], edi
mov edi, dword [esp + 0x20]
mov ebp, dword [esi + edx*8]
mov dword [ecx + edi - 0x10], ebp
mov ebp, dword [esi + edx*8 + 4]
mov dword [ecx + edi - 0xc], ebp
mov edi, dword [eax + ebx*8]
mov dword [ecx - 0x18], edi
mov edi, dword [eax + ebx*8 + 4]
mov ebp, dword [esp + 0x30]
mov dword [ecx - 0x14], edi
mov edi, dword [eax + edx*8]
add ebp, 0x10
mov dword [ecx - 0x10], edi
mov edi, dword [eax + edx*8 + 4]
mov dword [ecx - 0xc], edi
mov edi, dword [esp + 0x1c]
cmp edx, edi
mov dword [esp + 0x30], ebp
jne 0x51f149
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0xb8]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
shl eax, 4
add ecx, eax
lea edx, [ecx - 0x10]
mov ebp, dword [ecx - 0x10]
mov dword [ecx], ebp
mov ebp, dword [edx + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [edx + 8]
mov dword [ecx + 8], ebp
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x44]
add eax, ecx
lea edx, [eax - 0x10]
mov ecx, dword [eax - 0x10]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x28]
shl eax, 4
lea ecx, [edi + eax - 0x10]
mov edx, dword [edi + eax - 0x10]
mov dword [edi + eax], edx
mov edx, dword [ecx + 4]
mov dword [edi + eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [edi + eax + 8], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [ecx + 0xc]
mov dword [edi + eax + 0xc], ecx
add eax, edx
lea ecx, [eax - 0x10]
mov edx, dword [eax - 0x10]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov edx, dword [ebx + 0x14]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x54], edx
mov edx, dword [ebx + 0x10]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xa8], edx
mov dword [esp + 0x30], ecx
xor edx, edx
xor eax, eax
xor ecx, ecx
cmp byte [esp + 0xc8], dl
setne dl
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x58]
test edx, edx
jne 0x51f291
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
mov edx, dword [esi + edx*8 + 4]
mov dword [esp + 0x20], edx
jmp 0x51f500
mov ebp, dword [esp + 0x58]
mov edx, dword [ebp]
shl edx, 0x14
add edx, 0x80000
mov dword [esp + 0x60], edx
mov edx, dword [ebp + 8]
shl edx, 0x14
sub edx, 0x80000
mov ebp, dword [ebp + 4]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x10]
mov edx, dword [esi + edx*8 + 4]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x58]
mov esi, dword [edx + 0xc]
mov edx, dword [esp + 0x40]
dec esi
cmp esi, edx
mov dword [esp + 0x6c], esi
jl 0x51f920
cmp dword [esp + 0x5c], ebp
jl 0x51f920
mov edx, dword [esp + 0x40]
cmp ebp, edx
jg 0x51f304
mov dword [esp + 0x34], edx
jmp 0x51f4f0
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x34], ebp
mov eax, 1
dec ebp
cmp ecx, eax
mov dword [esp + 0x10], eax
jle 0x51f332
add edi, 0xc
cmp dword [edi - 8], ebp
jg 0x51f326
cmp ebp, dword [edi]
jl 0x51f32e
inc eax
add edi, 0x10
cmp eax, ecx
jl 0x51f31d
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x38]
mov ecx, 1
cmp edx, ecx
mov dword [esp + 0x28], ecx
jle 0x51f35f
mov eax, dword [esp + 0x48]
add eax, 0xc
cmp dword [eax - 8], ebp
jg 0x51f353
cmp ebp, dword [eax]
jl 0x51f35b
inc ecx
add eax, 0x10
cmp ecx, edx
jl 0x51f34a
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
shl ecx, 4
mov edx, dword [eax + ecx - 0xc]
mov edi, dword [eax + ecx - 4]
mov ebx, dword [eax + ecx - 0x10]
mov eax, dword [eax + ecx - 8]
sub eax, ebx
mov dword [esp + 0x2c], edx
shl eax, 0x14
sub edi, edx
cdq
idiv edi
mov edx, dword [esp + 0x24]
shl ebx, 0x14
mov esi, dword [edx + ecx - 0x10]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x1c]
add edi, eax
mov eax, dword [edx + ecx - 8]
sub eax, esi
mov dword [esp + 0x20], edi
shl eax, 0x14
cdq
idiv edi
shl esi, 0x14
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x24]
mov edx, eax
mov edi, dword [eax + ecx - 0xc]
mov eax, dword [edx + ecx - 4]
mov ecx, dword [esp + 0x2c]
sub eax, edi
shl eax, 0x14
cdq
idiv dword [esp + 0x20]
shl edi, 0x14
mov dword [esp + 0x94], eax
mov eax, ebp
sub eax, ecx
mov ecx, eax
imul ecx, dword [esp + 0x88]
lea edx, [ecx + ebx + 0x80000]
mov ecx, eax
imul ecx, dword [esp + 0x7c]
imul eax, dword [esp + 0x94]
mov dword [esp + 0x3c], edx
lea edx, [ecx + esi + 0x80000]
mov ecx, dword [esp + 0x28]
lea eax, [eax + edi + 0x80000]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x48]
shl ecx, 4
mov dword [esp + 0x68], edx
mov edx, dword [eax + ecx - 0xc]
mov esi, dword [eax + ecx - 4]
mov edi, dword [eax + ecx - 0x10]
mov eax, dword [eax + ecx - 8]
sub eax, edi
mov dword [esp + 0x2c], edx
shl eax, 0x14
sub esi, edx
cdq
idiv esi
mov edx, dword [esp + 0x1c]
add esi, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x44]
mov ebx, dword [eax + ecx - 0x10]
mov eax, dword [eax + ecx - 8]
sub eax, ebx
shl eax, 0x14
cdq
idiv esi
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x44]
mov esi, dword [eax + ecx - 0xc]
mov eax, dword [eax + ecx - 4]
sub eax, esi
shl eax, 0x14
cdq
idiv dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x8c]
sub ebp, ecx
mov ecx, ebp
imul edx, ecx
shl edi, 0x14
shl ebx, 0x14
lea edx, [edx + edi + 0x80000]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x90]
imul edx, ecx
mov dword [esp + 0x9c], eax
imul eax, ecx
mov ecx, dword [esp + 0x28]
lea edx, [edx + ebx + 0x80000]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x80], edx
shl esi, 0x14
lea eax, [eax + esi + 0x80000]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x5c]
cmp edx, esi
mov dword [esp + 0x20], edx
jle 0x51f500
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x78]
mov edx, esi
imul edx, dword [esp + 0x30]
add edx, dword [ebp + 0x10]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x20]
cmp esi, edx
jg 0x51f920
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
shl ecx, 4
shl eax, 4
lea ebp, [edx + ecx]
lea ecx, [ebx + ecx - 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
lea esi, [edi + eax]
mov dword [esp + 0x6c], ebp
lea eax, [ecx + eax - 0xc]
add ebp, 0xfffffff0
mov dword [esp + 0x70], eax
mov eax, ecx
sub eax, edi
mov dword [esp + 0xa0], esi
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x44]
sub eax, edx
lea ebx, [esi - 0x10]
mov dword [esp + 0xac], eax
jmp 0x51f57c
mov esi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + 4]
cmp eax, ecx
je 0x51f5d3
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x94]
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x3c]
add ecx, esi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x74], ecx
add eax, edx
sar ecx, 0x14
imul ecx, dword [esp + 0x54]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x68]
add eax, edi
mov dword [esp + 0x68], eax
sar eax, 0x14
add edx, ecx
lea edi, [edx + eax*4]
jmp 0x51f67e
mov edx, dword [ebx + 0x10]
add ebx, 0x10
mov eax, edx
mov ecx, dword [esp + 0x70]
mov edi, dword [ebx + 0xc]
add ecx, 0x10
shl eax, 0x14
add eax, 0x80000
mov dword [esp + 0x70], ecx
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 4]
sub edi, eax
lea eax, [ebx + 0x10]
mov dword [esp + 0xa0], eax
mov eax, dword [ebx + 8]
sub eax, edx
mov ecx, dword [ecx]
shl eax, 0x14
cdq
idiv edi
mov edx, dword [esp + 0xb0]
mov esi, dword [edx + ebx]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x88], eax
mov eax, esi
shl eax, 0x14
add eax, 0x80000
mov dword [esp + 0x68], eax
mov eax, ecx
shl eax, 0x14
add eax, 0x80000
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c]
add edi, eax
mov eax, dword [edx + 4]
sub eax, esi
shl eax, 0x14
cdq
idiv edi
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 8]
sub eax, ecx
imul ecx, dword [esp + 0x54]
shl eax, 0x14
cdq
idiv edi
mov edx, dword [esp + 0xa8]
add edx, ecx
lea edi, [edx + esi*4]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x34]
cmp dword [ecx + 4], eax
je 0x51f6c9
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x50]
add esi, edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x80]
add esi, edx
add ecx, eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x50], ecx
jmp 0x51f76f
mov eax, dword [esp + 0x28]
mov edx, dword [ebp + 0x10]
add ebp, 0x10
add eax, 0x10
mov dword [esp + 0x28], eax
mov eax, edx
mov ecx, dword [ebp + 0xc]
shl eax, 0x14
add eax, 0x80000
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 4]
sub ecx, eax
lea eax, [ebp + 0x10]
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 8]
sub eax, edx
shl eax, 0x14
cdq
idiv ecx
mov edx, dword [esp + 0xac]
mov edx, dword [edx + ebp]
mov esi, edx
shl esi, 0x14
add esi, 0x80000
mov dword [esp + 0x80], esi
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
shl eax, 0x14
add eax, 0x80000
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
sub eax, edx
shl eax, 0x14
cdq
idiv ecx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x90], eax
mov eax, dword [edx + 8]
sub eax, dword [esp + 0x2c]
shl eax, 0x14
cdq
idiv ecx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
sar eax, 0x14
sar edx, 0x14
mov ecx, eax
mov dword [esp + 0x40], eax
sub ecx, edx
mov dword [esp + 0x2c], edx
je 0x51f7d9
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
add ecx, eax
mov eax, esi
sar edx, 0x14
shl edx, 0x14
and eax, 0xfff00000
sub eax, edx
cdq
idiv ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x74]
sar eax, 0x14
shl eax, 0x14
mov edx, eax
mov eax, dword [esp + 0x50]
and eax, 0xfff00000
sub eax, edx
cdq
idiv ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x40]
jmp 0x51f7e9
xor ecx, ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x58]
xor esi, esi
test ecx, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x5c], esi
jne 0x51f7ff
mov ecx, edx
jmp 0x51f87c
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0xa4]
cmp eax, ecx
jl 0x51f8f2
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x38], eax
jl 0x51f8f2
cmp eax, ecx
jg 0x51f828
mov ecx, edx
jmp 0x51f85f
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
sub eax, edx
sar eax, 0x14
mov esi, eax
imul eax, dword [esp + 0x84]
imul esi, dword [esp + 0x98]
mov dword [esp + 0x5c], eax
mov ecx, dword [ecx]
sar eax, 0x14
imul eax, dword [esp + 0x54]
mov edx, esi
sar edx, 0x14
add eax, edi
lea edi, [eax + edx*4]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0xa4]
cmp eax, edx
jg 0x51f874
mov eax, dword [esp + 0x40]
jmp 0x51f87c
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 8]
dec eax
cmp ecx, eax
jg 0x51f8e2
mov edx, dword [esp + 0x10]
sub eax, ecx
inc eax
lea edx, [edx + ecx*2]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x40]
push edi
call fcn.004cbde0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x84]
add eax, ecx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x5c], eax
add esi, edx
sar eax, 0x14
imul eax, dword [esp + 0x54]
mov edx, dword [esp + 0x14]
mov ecx, esi
sar ecx, 0x14
add edx, eax
mov eax, dword [esp + 0x2c]
lea edi, [edx + ecx*4]
mov ecx, dword [esp + 0x40]
add ecx, 2
dec eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], eax
jne 0x51f892
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
add ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x51f900
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
add eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x34], eax
jle 0x51f575
mov ebx, dword [esp + 0xb8]
mov edi, dword [esp + 0x4c]
push edi
call fcn.0054a2d0
mov edx, dword [esp + 0x4c]
push edx
call fcn.0054a2d0
mov eax, dword [esp + 0x2c]
push eax
call fcn.0054a2d0
mov ecx, dword [esp + 0x50]
push ecx
call fcn.0054a2d0
mov esi, dword [esp + 0x88]
add esp, 0x10
jmp case.0x51ff8a.9
cmp eax, 4
jne 0x51f9aa
cmp ecx, 0xb
jne 0x51fb1c
mov edx, dword [esp + 0xcc]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
mov eax, dword [esp + 0x28]
lea edx, [esi + 0xc]
push ecx
push edx
mov edx, dword [esp + 0x30]
lea ecx, [ebx + 0xc]
push eax
push ecx
push edx
call fcn.00520e00
jmp 0x520353
cmp eax, 5
jne 0x51fa0e
cmp ecx, 0xc
jne 0x51fb1c
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
lea eax, [esi + 0xc]
push edx
mov dx, word [esp + 0x28]
push eax
mov al, byte [esp + 0x2e]
push ecx
mov ecx, esp
mov word [ecx], dx
mov edx, dword [esp + 0x34]
mov byte [ecx + 2], al
lea ecx, [ebx + 0xc]
push ecx
push edx
call fcn.00521ae0
jmp 0x520353
cmp eax, 6
jne 0x51fa72
cmp ecx, 0xd
jne 0x51fb1c
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
lea eax, [esi + 0xc]
push edx
mov dx, word [esp + 0x28]
push eax
mov al, byte [esp + 0x2e]
push ecx
mov ecx, esp
mov word [ecx], dx
mov edx, dword [esp + 0x34]
mov byte [ecx + 2], al
lea ecx, [ebx + 0xc]
push ecx
push edx
call fcn.005227e0
jmp 0x520353
cmp eax, 7
jne 0x51fac9
cmp ecx, 0xc
jne 0x51fb1c
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x28]
lea eax, [esi + 0xc]
push edx
push eax
mov eax, dword [esp + 0x30]
lea edx, [ebx + 0xc]
push ecx
push edx
push eax
call fcn.005234e0
jmp 0x520353
cmp eax, 8
jne 0x51fb1c
cmp ecx, 0xd
jne 0x51fb1c
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0x20]
push ecx
push edx
mov edx, dword [esp + 0x28]
lea ecx, [esi + 0xc]
push eax
push ecx
mov ecx, dword [esp + 0x30]
lea eax, [ebx + 0xc]
push edx
push eax
push ecx
call fcn.005241e0
jmp 0x520353
cmp ecx, 3
jne 0x51fb7f
cmp eax, 0xa
jne 0x51fbde
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x74]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov word [esp + 0x14], ax
mov eax, dword [esp + 0xcc]
push eax
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x28]
lea eax, [esi + 0xc]
push edx
push eax
mov eax, dword [esp + 0x30]
lea edx, [ebx + 0xc]
push ecx
push edx
push eax
call fcn.00524ee0
jmp 0x520353
cmp ecx, 4
jne 0x51fbde
cmp eax, 0xb
jne 0x51fbde
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x74]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov word [esp + 0x14], ax
mov eax, dword [esp + 0xcc]
push eax
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x28]
lea eax, [esi + 0xc]
push edx
push eax
mov eax, dword [esp + 0x30]
lea edx, [ebx + 0xc]
push ecx
push edx
push eax
call fcn.00524ee0
jmp 0x520353
cmp eax, 0xc
jne 0x51fd9e
lea eax, [ecx - 5]
cmp eax, 3
ja case.default.0x51fdb3
jmp dword [eax*4 + 0x520374]
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x74]
mov ecx, eax
mov word [esp + 0x24], ax
shr ecx, 0x10
lea eax, [esp + 0x24]
mov byte [esp + 0x26], cl
push eax
lea ecx, [esp + 0x20]
call fcn.004b1720
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0xc4]
push eax
push ecx
push edx
mov dl, byte [esp + 0x32]
push ecx
mov cx, word [esp + 0x34]
mov eax, esp
mov word [eax], cx
mov ecx, dword [esp + 0x2c]
mov byte [eax + 2], dl
lea eax, [esi + 0xc]
push eax
lea edx, [ebx + 0xc]
push ecx
push edx
mov dl, byte [esp + 0x36]
push ecx
mov cx, word [esp + 0x38]
mov eax, esp
mov word [eax], cx
mov byte [eax + 2], dl
call fcn.00525b70
jmp 0x520353
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
mov ecx, eax
mov word [esp + 0x24], ax
shr ecx, 0x10
mov byte [esp + 0x26], cl
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x14]
call fcn.004b1740
mov edx, dword [esp + 0xcc]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0xc4]
push ecx
push edx
mov dx, word [esp + 0x20]
push eax
mov al, byte [esp + 0x26]
push ecx
mov ecx, esp
mov word [ecx], dx
mov edx, dword [esp + 0x2c]
mov byte [ecx + 2], al
lea ecx, [esi + 0xc]
push ecx
lea eax, [ebx + 0xc]
push edx
mov dx, word [esp + 0x30]
push eax
mov al, byte [esp + 0x36]
push ecx
mov ecx, esp
mov word [ecx], dx
mov byte [ecx + 2], al
call fcn.00526840
jmp 0x520353
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x74]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esi + 0xc]
lea ecx, [ebx + 0xc]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
call fcn.00527510
jmp 0x520353
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esi + 0xc]
lea ecx, [ebx + 0xc]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
call fcn.005281f0
jmp 0x520353
cmp eax, 0xd
jne case.default.0x51fdb3
lea eax, [ecx - 5]
cmp eax, 3
ja case.default.0x51fdb3
jmp dword [eax*4 + 0x520384]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
mov ecx, eax
mov word [esp + 0x10], ax
shr ecx, 0x10
mov byte [esp + 0x12], cl
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x20]
call fcn.004b1720
mov edx, dword [esp + 0xcc]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0xc4]
push ecx
push edx
mov dx, word [esp + 0x2c]
push eax
mov al, byte [esp + 0x32]
push ecx
mov ecx, esp
mov word [ecx], dx
mov edx, dword [esp + 0x2c]
mov byte [ecx + 2], al
lea ecx, [esi + 0xc]
push ecx
lea eax, [ebx + 0xc]
push edx
mov dx, word [esp + 0x30]
push eax
mov al, byte [esp + 0x36]
push ecx
mov ecx, esp
mov word [ecx], dx
mov byte [ecx + 2], al
call fcn.00528ed0
jmp 0x520353
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x74]
mov ecx, eax
mov word [esp + 0x10], ax
shr ecx, 0x10
lea eax, [esp + 0x10]
mov byte [esp + 0x12], cl
push eax
lea ecx, [esp + 0x28]
call fcn.004b1740
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0xc4]
push eax
push ecx
push edx
mov dl, byte [esp + 0x3a]
push ecx
mov cx, word [esp + 0x3c]
mov eax, esp
mov word [eax], cx
mov ecx, dword [esp + 0x2c]
mov byte [eax + 2], dl
lea eax, [esi + 0xc]
push eax
lea edx, [ebx + 0xc]
push ecx
push edx
mov dl, byte [esp + 0x36]
push ecx
mov cx, word [esp + 0x38]
mov eax, esp
mov word [eax], cx
mov byte [eax + 2], dl
call fcn.00529ba0
jmp 0x520353
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esi + 0xc]
lea ecx, [ebx + 0xc]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
call fcn.0052a870
jmp 0x520353
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esi + 0xc]
lea ecx, [ebx + 0xc]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
call fcn.0052b550
jmp 0x520353
mov ecx, ebx
call fcn.004ac2b0
mov ecx, esi
call fcn.004ac2b0
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa4
ret 0x18
add eax, 0xfffffffd
cmp eax, 0xa
ja case.0x51ff8a.9
jmp dword [eax*4 + 0x520394]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
mov word [esp + 0x14], ax
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0x20]
push ecx
push edx
mov edx, dword [esp + 0x28]
lea ecx, [esi + 0xc]
push eax
push ecx
mov ecx, dword [esp + 0x30]
lea eax, [ebx + 0xc]
push edx
push eax
push ecx
call fcn.0052c230
jmp 0x520353
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x74]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov word [esp + 0x14], ax
mov eax, dword [esp + 0xcc]
push eax
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x28]
lea eax, [esi + 0xc]
push edx
push eax
mov eax, dword [esp + 0x30]
lea edx, [ebx + 0xc]
push ecx
push edx
push eax
call fcn.0052c230
jmp 0x520353
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x74]
mov ecx, eax
mov word [esp + 0x10], ax
shr ecx, 0x10
lea eax, [esp + 0x10]
mov byte [esp + 0x12], cl
push eax
lea ecx, [esp + 0x20]
call fcn.004b1720
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0xc4]
push eax
push ecx
push edx
mov dl, byte [esp + 0x32]
push ecx
mov cx, word [esp + 0x34]
mov eax, esp
mov word [eax], cx
mov byte [eax + 2], dl
mov dx, word [esp + 0x28]
lea eax, [esi + 0xc]
push eax
mov al, byte [esp + 0x2e]
push ecx
mov ecx, esp
mov word [ecx], dx
mov byte [ecx + 2], al
mov ax, word [esp + 0x30]
lea ecx, [ebx + 0xc]
push ecx
push ecx
mov cl, byte [esp + 0x3a]
mov edx, esp
mov word [edx], ax
mov byte [edx + 2], cl
call fcn.0052cf10
jmp 0x520353
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x74]
mov ecx, eax
mov word [esp + 0x10], ax
shr ecx, 0x10
lea eax, [esp + 0x10]
mov byte [esp + 0x12], cl
push eax
lea ecx, [esp + 0x28]
call fcn.004b1740
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0xc4]
push eax
push ecx
push edx
mov dl, byte [esp + 0x3a]
push ecx
mov cx, word [esp + 0x3c]
mov eax, esp
mov word [eax], cx
mov byte [eax + 2], dl
mov dx, word [esp + 0x28]
lea eax, [esi + 0xc]
push eax
mov al, byte [esp + 0x2e]
push ecx
mov ecx, esp
mov word [ecx], dx
mov byte [ecx + 2], al
mov ax, word [esp + 0x30]
lea ecx, [ebx + 0xc]
push ecx
push ecx
mov cl, byte [esp + 0x3a]
mov edx, esp
mov word [edx], ax
mov byte [edx + 2], cl
call fcn.0052dbd0
jmp 0x520353
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x74]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esi + 0xc]
lea ecx, [ebx + 0xc]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
call fcn.0052e890
jmp 0x520353
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esi + 0xc]
lea ecx, [ebx + 0xc]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
call fcn.0052e890
jmp 0x520353
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
mov word [esp + 0x2c], ax
mov byte [esp + 0x2e], 0xf
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
push edx
lea ecx, [esp + 0x64]
call fcn.004b1700
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0x6c]
push eax
push ecx
mov ecx, dword [esp + 0x28]
lea eax, [esi + 0xc]
push edx
push eax
mov eax, dword [esp + 0x30]
lea edx, [ebx + 0xc]
push ecx
push edx
push eax
call fcn.0052f570
jmp 0x520353
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x74]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov word [esp + 0x2c], ax
mov eax, dword [esp + 0xcc]
push eax
mov eax, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
mov byte [esp + 0x36], 0xf
push edx
mov edx, dword [esp + 0x38]
push eax
push ecx
mov ecx, dword [esp + 0x28]
lea eax, [esi + 0xc]
push edx
push eax
mov eax, dword [esp + 0x30]
lea edx, [ebx + 0xc]
push ecx
push edx
push eax
call fcn.0052f570
jmp 0x520353
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x74]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esi + 0xc]
lea ecx, [ebx + 0xc]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
call fcn.00530220
jmp 0x520353
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xc8]
push edx
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esi + 0xc]
lea ecx, [ebx + 0xc]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
call fcn.00530220
add esp, 0x28
mov ecx, ebx
call fcn.004ac2b0
mov ecx, esi
call fcn.004ac2b0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xa4
ret 0x18