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

Disassembly:
sub esp, 0x9fc
xor eax, eax
xor ecx, ecx
push ebx
push ebp
mov ebp, dword [esp + 0xa0c]
mov al, byte [ebp + 0x12]
mov cl, byte [ebp + 0x15]
mov dl, byte [ebp + 0x9c]
push esi
push edi
mov esi, ebp
lea edi, [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x98]
mov dword [esp + 0x14], ecx
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x35], al
shr eax, 8
mov byte [esp + 0x34], al
mov al, byte [ebp + 0x94]
mov byte [esp + 0x37], al
mov eax, dword [ebp + 0x18]
mov byte [esp + 0x36], dl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x3f], al
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esp + 0x3c], al
mov eax, dword [ebp + 0x1c]
mov byte [esp + 0x3e], cl
mov byte [esp + 0x3d], dl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x47], al
shr eax, 0x18
xor ebx, ebx
shr ecx, 8
shr edx, 0x10
mov byte [esp + 0x44], al
mov eax, dword [ebp + 0x40]
mov byte [esp + 0x46], cl
mov byte [esp + 0x45], dl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x4f], al
shr ecx, 8
shr edx, 0x10
shr eax, 0x18
mov byte [esp + 0x4e], cl
mov byte [esp + 0x4d], dl
mov edx, dword [ebp + 0x4c]
mov byte [esp + 0x4c], al
mov eax, dword [ebp + 0x48]
mov ecx, 0x20
mov byte [esp + 0x3b], bl
mov byte [esp + 0x3a], bl
mov byte [esp + 0x39], bl
mov byte [esp + 0x38], bl
mov byte [esp + 0x43], bl
mov byte [esp + 0x42], bl
mov byte [esp + 0x41], bl
mov byte [esp + 0x40], bl
mov byte [esp + 0x4b], bl
mov byte [esp + 0x4a], bl
mov byte [esp + 0x49], bl
mov byte [esp + 0x48], bl
call fcn.00427d30
mov ecx, eax
mov edx, eax
mov byte [esp + 0x53], al
shr ecx, 8
shr edx, 0x10
shr eax, 0x18
mov byte [esp + 0x50], al
mov eax, dword [ebp + 0x48]
mov byte [esp + 0x52], cl
mov byte [esp + 0x51], dl
mov byte [esp + 0x57], al
mov ecx, eax
mov edx, eax
shr ecx, 8
shr edx, 0x10
shr eax, 0x18
mov byte [esp + 0x56], cl
mov byte [esp + 0x55], dl
mov edx, dword [ebp + 0x34]
mov byte [esp + 0x54], al
mov eax, dword [ebp + 0x30]
mov ecx, 0x20
call fcn.00427d30
mov ecx, eax
mov edx, eax
mov byte [esp + 0x5b], al
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esp + 0x58], al
mov eax, dword [ebp + 0x30]
mov byte [esp + 0x5a], cl
mov byte [esp + 0x59], dl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x5f], al
shr ecx, 8
shr edx, 0x10
shr eax, 0x18
mov byte [esp + 0x5e], cl
mov byte [esp + 0x5d], dl
mov edx, dword [ebp + 0x3c]
mov byte [esp + 0x5c], al
mov eax, dword [ebp + 0x38]
mov ecx, 0x20
call fcn.00427d30
mov ecx, eax
mov edx, eax
mov byte [esp + 0x63], al
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esp + 0x60], al
mov eax, dword [ebp + 0x38]
mov byte [esp + 0x62], cl
mov byte [esp + 0x61], dl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x67], al
shr ecx, 8
shr edx, 0x10
shr eax, 0x18
mov byte [esp + 0x66], cl
mov byte [esp + 0x65], dl
mov edx, dword [ebp + 0x24]
mov byte [esp + 0x64], al
mov eax, dword [ebp + 0x20]
mov ecx, 0x20
call fcn.00427d30
mov ecx, eax
mov edx, eax
mov byte [esp + 0x6b], al
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esp + 0x68], al
mov eax, dword [ebp + 0x20]
mov byte [esp + 0x6a], cl
mov byte [esp + 0x69], dl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x6f], al
shr ecx, 8
shr edx, 0x10
shr eax, 0x18
mov byte [esp + 0x6e], cl
mov byte [esp + 0x6d], dl
mov edx, dword [ebp + 0x2c]
mov byte [esp + 0x6c], al
mov eax, dword [ebp + 0x28]
mov ecx, 0x20
call fcn.00427d30
mov ecx, eax
mov edx, eax
mov byte [esp + 0x73], al
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esp + 0x70], al
mov eax, dword [ebp + 0x28]
mov byte [esp + 0x72], cl
mov byte [esp + 0x71], dl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x77], al
shr ecx, 8
shr edx, 0x10
shr eax, 0x18
mov byte [esp + 0x76], cl
mov byte [esp + 0x75], dl
mov edx, dword [ebp + 0x54]
mov byte [esp + 0x74], al
mov eax, dword [ebp + 0x50]
mov ecx, 0x20
call fcn.00427d30
mov ecx, eax
mov edx, eax
mov byte [esp + 0x7b], al
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esp + 0x78], al
mov eax, dword [ebp + 0x50]
mov byte [esp + 0x79], dl
mov byte [esp + 0x7a], cl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x7f], al
shr ecx, 8
shr eax, 0x18
shr edx, 0x10
mov byte [esp + 0x7e], cl
mov ecx, dword [ebp + 0x80]
mov byte [esp + 0x7c], al
mov byte [esp + 0x7d], dl
mov eax, ecx
shr eax, 0x20
mov edx, eax
shr edx, 8
mov byte [esp + 0x82], dl
mov edx, eax
mov byte [esp + 0x83], al
shr eax, 0x18
shr edx, 0x10
mov byte [esp + 0x80], al
mov eax, ecx
mov byte [esp + 0x81], dl
mov edx, ecx
shr eax, 8
mov byte [esp + 0x87], cl
shr ecx, 0x18
shr edx, 0x10
mov byte [esp + 0x86], al
mov eax, dword [ebp + 0x58]
mov byte [esp + 0x85], dl
mov byte [esp + 0x84], cl
mov ecx, eax
mov edx, eax
mov byte [esp + 0x8b], al
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esp + 0x88], al
mov eax, dword [ebp + 0x5c]
mov byte [esp + 0x8a], cl
mov byte [esp + 0x89], dl
mov ecx, eax
shr ecx, 8
mov edx, eax
shr edx, 0x10
mov byte [esp + 0x8f], al
mov byte [esp + 0x8e], cl
mov byte [esp + 0x8d], dl
shr eax, 0x18
mov byte [esp + 0x8c], al
mov eax, dword [ebp + 0x64]
mov ecx, eax
mov edx, eax
mov byte [esp + 0x93], al
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esp + 0x90], al
mov eax, dword [ebp + 0x60]
mov byte [esp + 0x92], cl
mov ecx, eax
mov byte [esp + 0x91], dl
mov edx, eax
mov byte [esp + 0x97], al
shr eax, 0x18
mov byte [esp + 0x94], al
mov eax, dword [ebp + 0xac]
lea esi, [esp + eax + 0x98]
mov eax, dword [esp + 0x18]
shr ecx, 8
shr edx, 0x10
xor edi, edi
cmp eax, ebx
mov byte [esp + 0x96], cl
mov byte [esp + 0x95], dl
jbe 0x40baad
lea esp, [esp]
mov ecx, dword [ebp + 0x68]
mov edx, dword [ecx + edi*8]
lea ecx, [ecx + edi*8]
mov dword [esp + 0x10], edx
mov eax, edx
mov edx, dword [ecx + 4]
mov ecx, 0x20
call fcn.00427d30
mov byte [esi + 3], al
mov ecx, eax
mov edx, eax
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esi], al
mov eax, dword [esp + 0x10]
mov byte [esi + 2], cl
mov byte [esi + 1], dl
mov ecx, eax
mov edx, eax
mov byte [esi + 7], al
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esi + 4], al
mov eax, dword [esp + 0x18]
mov byte [esi + 6], cl
mov byte [esi + 5], dl
add esi, 8
inc edi
cmp edi, eax
jb 0x40ba50
mov eax, dword [esp + 0x14]
xor edi, edi
cmp eax, ebx
jbe 0x40bb14
mov eax, dword [ebp + 0x6c]
mov edx, dword [eax + edi*8]
lea ecx, [eax + edi*8]
mov dword [esp + 0x10], edx
mov eax, edx
mov edx, dword [ecx + 4]
mov ecx, 0x20
call fcn.00427d30
mov byte [esi + 3], al
mov ecx, eax
mov edx, eax
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esi], al
mov eax, dword [esp + 0x10]
mov byte [esi + 2], cl
mov byte [esi + 1], dl
mov ecx, eax
mov edx, eax
mov byte [esi + 7], al
shr eax, 0x18
shr ecx, 8
shr edx, 0x10
mov byte [esi + 4], al
mov eax, dword [esp + 0x14]
mov byte [esi + 6], cl
mov byte [esi + 5], dl
add esi, 8
inc edi
cmp edi, eax
jb 0x40bab7
test byte [esp + 0xa18], 2
je 0x40bd1d
movzx di, byte [ebp + 0xe]
movzx ax, byte [ebp + 0xf]
add esi, 4
add esi, 4
add esi, 4
shl edi, 8
add edi, eax
mov eax, dword [ebp + 0x70]
mov byte [esi - 9], al
mov ecx, eax
mov edx, eax
shr ecx, 8
mov byte [esi - 0xa], cl
shr edx, 0x10
mov byte [esi - 0xb], dl
shr eax, 0x18
mov byte [esi - 0xc], al
mov eax, dword [ebp + 0x74]
mov byte [esi - 5], al
mov ecx, eax
mov edx, eax
shr ecx, 8
mov byte [esi - 6], cl
shr edx, 0x10
mov byte [esi - 7], dl
shr eax, 0x18
mov byte [esi - 8], al
mov eax, dword [ebp + 0x84]
mov byte [esi - 1], al
mov ecx, eax
mov edx, eax
shr ecx, 8
mov byte [esi - 2], cl
shr edx, 0x10
shr eax, 0x18
mov byte [esi - 3], dl
mov byte [esi - 4], al
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp + 0x7c]
mov ecx, 0x20
and edi, 0xffff
mov dword [esp + 0x10], eax
call fcn.00427d30
mov byte [esi + 3], al
mov ecx, eax
mov edx, eax
shr eax, 0x18
mov byte [esi], al
mov eax, dword [esp + 0x10]
mov byte [esi + 7], al
shr edx, 0x10
mov byte [esi + 1], dl
mov edx, eax
shr ecx, 8
mov byte [esi + 2], cl
mov ecx, eax
shr eax, 0x18
mov byte [esi + 4], al
shr edx, 0x10
mov byte [esi + 5], dl
shr ecx, 8
mov byte [esi + 6], cl
mov ecx, dword [ebp + 0x88]
mov eax, ecx
cdq
add esi, 8
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov eax, edx
mov byte [esi + 3], dl
shr edx, 0x18
shr eax, 0x10
mov byte [esi], dl
mov byte [esi + 1], al
mov edx, ecx
shr edx, 8
mov eax, ecx
mov byte [esi + 7], cl
mov byte [esi + 6], dl
shr eax, 0x10
mov byte [esi + 5], al
shr ecx, 0x18
mov byte [esi + 4], cl
mov ecx, dword [ebp + 0x8c]
mov eax, ecx
cdq
mov byte [esi + 0xb], dl
mov eax, edx
shr eax, 8
mov byte [esi + 0xa], al
add esi, 8
mov byte [esi + 7], cl
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
shr edx, 0x18
mov byte [esi], dl
mov edx, ecx
mov eax, ecx
shr eax, 0x10
mov byte [esi + 5], al
shr edx, 8
mov byte [esi + 6], dl
shr ecx, 0x18
mov byte [esi + 4], cl
mov ecx, dword [ebp + 0x90]
mov eax, ecx
cdq
add esi, 8
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
shr edx, 0x18
mov byte [esi], dl
mov byte [esi + 7], cl
mov edx, ecx
mov eax, ecx
shr ecx, 0x18
shr edx, 8
shr eax, 0x10
mov byte [esi + 5], al
mov byte [esi + 4], cl
mov byte [esi + 6], dl
mov ecx, dword [ebp + 0xa0]
mov edx, dword [ebp + 0xa4]
mov dword [esp + 0x10], ecx
mov eax, ecx
mov ecx, 0x20
add esi, 8
call fcn.00427d30
mov byte [esi + 3], al
mov edx, eax
mov ecx, eax
shr eax, 0x18
shr ecx, 0x10
shr edx, 8
mov byte [esi], al
mov eax, dword [esp + 0x10]
mov byte [esi + 1], cl
mov byte [esi + 2], dl
mov edx, eax
mov ecx, eax
mov byte [esi + 7], al
shr ecx, 0x10
shr edx, 8
shr eax, 0x18
mov byte [esi + 5], cl
mov byte [esi + 6], dl
mov byte [esi + 4], al
add esi, 8
xor ecx, ecx
cmp edi, ebx
jbe 0x40bd1d
mov edx, dword [ebp + 0xa8]
mov eax, dword [edx + ecx*4]
mov edx, eax
shr edx, 8
mov byte [esi + 2], dl
mov edx, eax
mov byte [esi + 3], al
shr edx, 0x10
shr eax, 0x18
mov byte [esi + 1], dl
mov byte [esi], al
add esi, 4
inc ecx
cmp ecx, edi
jb 0x40bcf4
mov al, byte [esp + 0xa18]
mov edx, dword [esp + 0xa10]
test al, 1
lea ecx, [esp + 0x1c]
lea eax, [esp + 0x1c]
je 0x40bd56
push 0x84
push ebx
push ebx
sub esi, eax
push esi
push ecx
push edx
call fcn.00420850
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9fc
ret
push 4
sub esi, eax
push esi
push ecx
push edx
call fcn.00421620
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9fc
ret