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

Disassembly:
mov edx, dword [esp + 4]
sub esp, 0x1bc
cmp edx, 6
push edi
mov edi, eax
jg 0x52109a
mov ecx, dword [edi + 0x60]
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx*4 + 0x5d963c]
push ebx
push ebp
mov ebp, dword [edx*4 + 0x5d9654]
mov edx, dword [edi + 0xc0]
add ecx, eax
mov dword [esp + 0x10], ecx
push esi
lea ecx, [esp + 0x7c]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x60]
push ecx
push edx
add ebp, eax
mov dword [esp + 0x18], 0
call fcn.004c7160
mov ebx, 1
mov esi, eax
call fcn.00403210
mov ecx, dword [edi + 0xc0]
lea eax, [esp + 0x2c]
push eax
push ecx
call fcn.004c7160
mov esi, eax
call fcn.00403210
mov edx, dword [esp + 0x1d0]
cmp dword [esp + 0x2c], edx
jne 0x520952
mov ecx, dword [edi + 0xc8]
lea eax, [esp + 0x2c]
push eax
push ecx
call fcn.004c7160
mov esi, eax
call fcn.00403210
mov edx, dword [esp + 0x1d0]
cmp dword [esp + 0x2c], edx
jne 0x520952
mov eax, dword [esp + 0x14]
push 0
push ebp
push eax
mov dword [esp + 0x1c], ebx
push 7
jmp 0x520a36
mov edx, dword [edi + 0xd0]
lea ecx, [esp + 0x2c]
push ecx
push edx
call fcn.004c7160
mov ebx, 1
mov esi, eax
call fcn.00403210
mov eax, dword [esp + 0x1d0]
cmp dword [esp + 0x2c], eax
jne 0x5209c9
mov edx, dword [edi + 0xc0]
lea ecx, [esp + 0x2c]
push ecx
push edx
call fcn.004c7160
mov esi, eax
call fcn.00403210
mov eax, dword [esp + 0x1d0]
cmp dword [esp + 0x2c], eax
je 0x5209c9
lea ecx, [edi + 0xc4]
call fcn.0042c6d0
cmp eax, dword [esp + 0x1d0]
je 0x5209c9
mov ecx, dword [esp + 0x14]
push 0
push ebp
push ecx
mov dword [esp + 0x1c], 0
push 8
jmp 0x520a36
mov eax, dword [edi + 0xc8]
lea edx, [esp + 0x2c]
push edx
push eax
call fcn.004c7160
mov ebx, 1
mov esi, eax
call fcn.00403210
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [esp + 0x1d0]
jne 0x520a2c
mov eax, dword [edi + 0xc0]
lea edx, [esp + 0x2c]
push edx
push eax
call fcn.004c7160
mov esi, eax
call fcn.00403210
mov ecx, dword [esp + 0x1d0]
cmp dword [esp + 0x2c], ecx
je 0x520a2c
mov edx, dword [esp + 0x14]
push 0
push ebp
push edx
mov dword [esp + 0x1c], 0xffffffff
push 6
jmp 0x520a36
mov eax, dword [esp + 0x14]
push 0
push ebp
push eax
push 5
push 0xe30d0
call fcn.0052abc0
mov ecx, dword [esp + 0x1e4]
imul ecx, ecx, 0x350
mov al, byte [edi + ecx + 0x87c8]
add edi, ecx
add esp, 0x14
cmp al, 1
mov dword [esp + 0x2c], edi
jne 0x520a86
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push 0
lea edx, [ebx + ebp + 3]
push edx
lea ecx, [ebx + eax + 5]
push ecx
push 0x1b
push 0xe30d1
call fcn.0052abc0
add esp, 0x14
jmp 0x520ab1
test al, al
jne 0x520aad
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push 0
lea edx, [eax + ebp + 3]
push edx
lea edx, [eax + ecx + 5]
push edx
push 0x1c
push 0xe30d1
call fcn.0052abc0
add esp, 0x14
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
lea esi, [edi + 0x87e4]
lea edi, [ebx + ebp]
push 0
add ebx, eax
push esi
lea ebp, [edi + 7]
mov dword [esp + 0x30], ebx
add ebx, 0x1b
push ebp
push ebx
call fcn.0052ab10
push 0xffff
push esi
push ebp
push ebx
call fcn.0052aa60
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x1f0]
xor ebp, ebp
push ebp
lea ecx, [edi + 0x40]
push ecx
add edx, 0x81
push edx
add eax, 0x4e20
push ebp
push eax
call fcn.0052abc0
mov ecx, dword [esp + 0x60]
add esp, 0x34
add ecx, 0x88c8
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x5c], 9
mov dword [esp + 0x60], 0x14
mov dword [esp + 0x64], 0xc
mov dword [esp + 0x68], 0xe
mov dword [esp + 0x6c], 0x10
mov dword [esp + 0x70], 0x12
mov dword [esp + 0x74], 0x16
mov dword [esp + 0x78], 0xa
mov dword [esp + 0x3c], 8
mov dword [esp + 0x40], 0x15
mov dword [esp + 0x44], 0xd
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x4c], 0x11
mov dword [esp + 0x50], 0x13
mov dword [esp + 0x54], 0x17
mov dword [esp + 0x58], 0xb
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], ebp
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x8c]
push edx
push ecx
call fcn.004c7160
mov ebx, 1
mov esi, eax
call fcn.00403210
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x520cf9
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0xac]
push edx
push ecx
call fcn.004c7160
mov esi, eax
call fcn.00403210
mov eax, dword [esp + 0xac]
test eax, eax
push 0
jge 0x520c55
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov edx, ebp
imul edx, edx, 0x26
add edx, eax
mov eax, dword [esp + 0x18]
add eax, edx
lea edx, [edi + ecx + 0x72]
mov dword [esp + 0x28], eax
push edx
add eax, 0xd
push eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + eax + 0x68]
push ecx
push 0xe30d1
call fcn.0052abc0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
add esp, 0x14
lea edx, [esp + 0xbc]
push edx
push ecx
call fcn.004c7160
mov esi, eax
call fcn.00403210
mov edx, dword [esp + 0xbc]
neg edx
jmp 0x520cb5
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, ebp
imul ecx, ecx, 0x26
add ecx, esi
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x20]
lea edx, [edi + ecx + 0x72]
mov dword [esp + 0x28], eax
push edx
add eax, 0xd
push eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + eax + 0x48]
push ecx
push 0xe30d1
call fcn.0052abc0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
add esp, 0x14
lea edx, [esp + 0x9c]
push edx
push ecx
call fcn.004c7160
mov ebx, 1
mov esi, eax
call fcn.00403210
mov edx, dword [esp + 0x9c]
push edx
lea eax, [esp + 0x150]
push str._02d
push eax
call fcn.00548ff0
mov edx, dword [esp + 0x28]
add esp, 0xc
push 6
push 2
lea ecx, [esp + 0x154]
push ecx
mov ecx, dword [esp + 0x30]
push 0x1f
push 0x32
lea eax, [edi + edx + 0x73]
push eax
add ecx, 0x19
push ecx
call fcn.0052ac80
add esp, 0x1c
jmp 0x520d90
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, ebp
imul edx, edx, 0x26
add edx, esi
add eax, edx
push 0
lea edx, [edi + ecx + 0x72]
mov dword [esp + 0x28], eax
push edx
add eax, 0xd
push eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + eax + 0x48]
push ecx
push 0xe30d1
call fcn.0052abc0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
add esp, 0x14
lea edx, [esp + 0x7c]
push edx
push ecx
call fcn.004c7160
mov ebx, 1
mov esi, eax
call fcn.00403210
mov edx, dword [esp + 0x7c]
push edx
lea eax, [esp + 0x150]
push str._02d
push eax
call fcn.00548ff0
mov edx, dword [esp + 0x28]
push 6
push 2
lea ecx, [esp + 0x160]
push ecx
mov ecx, dword [esp + 0x3c]
push 0x1f
push 0x32
lea eax, [edi + edx + 0x73]
push eax
add ecx, 0x19
push ecx
call fcn.0052ac80
add esp, 0x28
inc ebp
cmp ebp, 4
jne 0x520da0
xor ebp, ebp
mov dword [esp + 0x1c], 0xf
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
add eax, 4
add esi, 8
cmp eax, 0x20
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], eax
jl 0x520ba0
mov ebp, dword [esp + 0x2c]
cmp byte [ebp + 0x8840], 1
jne 0x520eb6
mov edx, dword [ebp + 0x8800]
push edx
lea eax, [esp + 0xd0]
push 0x57ae48
push eax
call fcn.00548ff0
lea eax, [esp + 0xd8]
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x520df6
mov esi, dword [esp + 0x28]
push 3
push 7
sub eax, ecx
push eax
lea ecx, [esp + 0xd8]
push ecx
push 0x33
push 0x29
push 0x32
lea edx, [edi + 0x81]
push edx
lea eax, [esi + 0x90]
call fcn.0042c430
push 0x6222
push 0x7a122
push 0x87e094
lea ebx, [edi + 0x82]
call fcn.004454c0
push eax
push ebx
push 0xffffffffffffffff
push 0x7a122
push 0x87e094
call fcn.004454c0
push eax
call fcn.00527e40
mov ecx, esi
sub ecx, eax
add ecx, 0xf8
add esp, 8
push ecx
call fcn.0052ab10
add esp, 0x10
push 0xff29
push 0x7a122
push 0x87e094
call fcn.004454c0
push eax
push ebx
push 0xffffffffffffffff
push 0x7a122
push 0x87e094
call fcn.004454c0
push eax
call fcn.00527e40
mov edx, esi
sub edx, eax
add esp, 8
add edx, 0xf8
push edx
call fcn.0052aa60
jmp 0x520f45
push 0x6222
push 0x7a129
push 0x87e094
lea ebx, [edi + 0x82]
call fcn.004454c0
push eax
push ebx
push 0xffffffffffffffff
push 0x7a129
push 0x87e094
call fcn.004454c0
push eax
call fcn.00527e40
mov esi, dword [esp + 0x3c]
mov ecx, esi
sub ecx, eax
add ecx, 0xf8
add esp, 8
push ecx
call fcn.0052ab10
add esp, 0x10
push 0xff29
push 0x7a129
push 0x87e094
call fcn.004454c0
push eax
push ebx
push 0xffffffffffffffff
push 0x7a129
push 0x87e094
call fcn.004454c0
push eax
call fcn.00527e40
sub esi, eax
add esp, 8
add esi, 0xf8
push esi
call fcn.0052aa60
mov esi, dword [esp + 0x38]
mov al, byte [ebp + 0x8841]
add esp, 0x10
cmp al, 1
jne 0x521010
mov edx, dword [ebp + 0x8804]
push edx
lea eax, [esp + 0xd0]
push 0x57ae48
push eax
call fcn.00548ff0
lea eax, [esp + 0xd8]
add esp, 0xc
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x520f80
push 3
push 7
sub eax, ecx
push eax
lea ecx, [esp + 0xd8]
push ecx
push 0x3e
push 0x34
push 0x32
lea eax, [edi + 0x73]
push eax
lea eax, [esi + 0x90]
call fcn.0042c430
push 0x9cc
push 0x7a123
push 0x87e094
add edi, 0x74
call fcn.004454c0
push eax
push edi
push 0xffffffffffffffff
push 0x7a123
push 0x87e094
call fcn.004454c0
push eax
call fcn.00527e40
mov edx, esi
sub edx, eax
add edx, 0xf8
add esp, 8
push edx
call fcn.0052ab10
add esp, 0x10
push 0x8dfc
push 0x7a123
push 0x87e094
call fcn.004454c0
push eax
push edi
push 0xffffffffffffffff
push 0x7a123
jmp 0x521073
push 0x9cc
push 0x7a128
push 0x87e094
add edi, 0x74
call fcn.004454c0
push eax
push edi
push 0xffffffffffffffff
push 0x7a128
push 0x87e094
call fcn.004454c0
push eax
call fcn.00527e40
mov ecx, esi
sub ecx, eax
add ecx, 0xf8
add esp, 8
push ecx
call fcn.0052ab10
add esp, 0x10
push 0x8dfc
push 0x7a128
push 0x87e094
call fcn.004454c0
push eax
push edi
push 0xffffffffffffffff
push 0x7a128
push 0x87e094
call fcn.004454c0
push eax
call fcn.00527e40
sub esi, eax
add esi, 0xf8
add esp, 8
push esi
call fcn.0052aa60
add esp, 0x10
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x1bc
ret 4