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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x4c
mov dword [esp + 0xc], ecx
mov edi, eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x78]
mov ecx, dword [esp + 0x80]
lea esi, [ecx + ecx]
add esi, esi
lea ebp, [ebx + ebx]
add ebp, ebp
lea ebx, [eax + 1]
mov ecx, dword [esp + 0x84]
imul ecx, esi
push ecx
push edx
push edi
call dword [0x5d348c]
add esp, 0xc
mov ecx, dword [esp + 0x88]
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
test edx, edx
jle 0x43560f
xor eax, eax
mov ecx, dword [esp + 0x74]
lea ecx, [ecx - 1]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x28], ebp
mov dword [esp], esi
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x24]
mov esi, ebx
mov edx, dword [esp + 0x74]
cmp ebx, edx
jge 0x435401
mov edx, dword [esp + 0xc]
lea ecx, [eax + edx]
lea ebp, [ecx + ecx]
add ebp, ebp
mov edx, esi
mov edi, dword [esp]
imul edx, edi
lea edi, [edi + edi]
mov dword [esp + 0x30], edi
mov dword [esp + 0x20], ebp
mov dword [esp + 8], eax
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x20]
lea ebx, [ebx + edx]
mov eax, dword [esp + 0x28]
lea ebp, [eax + ebx]
mov eax, ecx
mov edi, dword [esp + 0x70]
cmp ecx, edi
jge 0x4353e6
mov edi, dword [esp + 0x18]
add ebp, edi
add ebx, edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x48], esi
call fcn.0046d04c
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov esi, ecx
sar esi, 0x1f
sub edx, esi
lea edi, [edx + edx]
add edi, edi
sub edi, edx
add edi, edi
add edi, edi
add edi, edi
sub ecx, edi
movzx edx, byte [ebx]
mov byte [esp + 0x34], dl
movzx edx, byte [ebx + 1]
mov byte [esp + 0x35], dl
movzx edx, byte [ebx + 2]
mov byte [esp + 0x36], dl
movzx edx, byte [ebx + 4]
mov byte [esp + 0x38], dl
movzx edx, byte [ebx + 5]
mov byte [esp + 0x39], dl
movzx edx, byte [ebx + 6]
mov byte [esp + 0x3a], dl
movzx edx, byte [ebp]
mov byte [esp + 0x3c], dl
movzx edx, byte [ebp + 1]
mov byte [esp + 0x3d], dl
movzx edx, byte [ebp + 2]
mov byte [esp + 0x3e], dl
movzx edx, byte [ebp + 4]
mov byte [esp + 0x40], dl
movzx edx, byte [ebp + 5]
mov byte [esp + 0x41], dl
movzx edx, byte [ebp + 6]
mov byte [esp + 0x42], dl
movsx edx, byte [ecx*4 + 0x5b6660]
movzx edx, byte [esp + edx + 0x34]
mov byte [ebx], dl
movsx edx, byte [ecx*4 + 0x5b6660]
movzx edx, byte [esp + edx + 0x35]
mov byte [ebx + 1], dl
movsx edx, byte [ecx*4 + 0x5b6660]
movzx edx, byte [esp + edx + 0x36]
mov byte [ebx + 2], dl
movsx edx, byte [ecx*4 + 0x5b6661]
movzx edx, byte [esp + edx + 0x34]
mov byte [ebx + 4], dl
movsx edx, byte [ecx*4 + 0x5b6661]
movzx edx, byte [esp + edx + 0x35]
mov byte [ebx + 5], dl
movsx edx, byte [ecx*4 + 0x5b6661]
movzx edx, byte [esp + edx + 0x36]
mov byte [ebx + 6], dl
movsx edx, byte [ecx*4 + 0x5b6662]
movzx edx, byte [esp + edx + 0x34]
mov byte [ebp], dl
movsx edx, byte [ecx*4 + 0x5b6662]
movzx edx, byte [esp + edx + 0x35]
mov byte [ebp + 1], dl
movsx edx, byte [ecx*4 + 0x5b6662]
movzx edx, byte [esp + edx + 0x36]
mov byte [ebp + 2], dl
movsx edx, byte [ecx*4 + 0x5b6663]
movzx edx, byte [esp + edx + 0x34]
mov byte [ebp + 4], dl
movsx edx, byte [ecx*4 + 0x5b6663]
movzx edx, byte [esp + edx + 0x35]
mov byte [ebp + 5], dl
movsx ecx, byte [ecx*4 + 0x5b6663]
movzx eax, byte [esp + ecx + 0x36]
mov byte [ebp + 6], al
add ebx, 8
add ebp, 8
mov eax, dword [esp + 0x44]
add eax, 2
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x70]
cmp eax, edx
jl 0x435278
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x48]
add edx, dword [esp + 0x30]
add esi, 2
mov eax, dword [esp + 0x74]
cmp esi, eax
jl 0x435244
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
cmp esi, ebx
jl 0x435601
mov ebp, dword [esp + 4]
sub ebp, eax
lea ebp, [ebp*4 - 8]
mov edx, dword [esp + 0xc]
lea ecx, [eax + edx]
mov edx, esi
mov edi, dword [esp]
imul edx, edi
lea edi, [edi + edi]
neg edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebp
mov dword [esp + 8], eax
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x30]
lea ebx, [ebx + edx]
mov eax, dword [esp + 0x28]
lea ebp, [eax + ebx]
mov eax, ecx
mov edi, dword [esp + 0x70]
cmp ecx, edi
jge 0x4355e6
mov edi, dword [esp + 0x18]
lea ebp, [edi + ebp + 8]
lea ebx, [edi + ebx + 8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x44], esi
call fcn.0046d04c
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov esi, ecx
sar esi, 0x1f
sub edx, esi
lea edi, [edx + edx]
add edi, edi
sub edi, edx
add edi, edi
add edi, edi
add edi, edi
sub ecx, edi
movzx edx, byte [ebx - 8]
mov byte [esp + 0x34], dl
movzx edx, byte [ebx - 7]
mov byte [esp + 0x35], dl
movzx edx, byte [ebx - 6]
mov byte [esp + 0x36], dl
movzx edx, byte [ebx - 4]
mov byte [esp + 0x38], dl
movzx edx, byte [ebx - 3]
mov byte [esp + 0x39], dl
movzx edx, byte [ebx - 2]
mov byte [esp + 0x3a], dl
movzx edx, byte [ebp - 8]
mov byte [esp + 0x3c], dl
movzx edx, byte [ebp - 7]
mov byte [esp + 0x3d], dl
movzx edx, byte [ebp - 6]
mov byte [esp + 0x3e], dl
movzx edx, byte [ebp - 4]
mov byte [esp + 0x40], dl
movzx edx, byte [ebp - 3]
mov byte [esp + 0x41], dl
movzx edx, byte [ebp - 2]
mov byte [esp + 0x42], dl
movsx edx, byte [ecx*4 + 0x5b6660]
movzx edx, byte [esp + edx + 0x34]
mov byte [ebx - 8], dl
movsx edx, byte [ecx*4 + 0x5b6660]
movzx edx, byte [esp + edx + 0x35]
mov byte [ebx - 7], dl
movsx edx, byte [ecx*4 + 0x5b6660]
movzx edx, byte [esp + edx + 0x36]
mov byte [ebx - 6], dl
movsx edx, byte [ecx*4 + 0x5b6661]
movzx edx, byte [esp + edx + 0x34]
mov byte [ebx - 4], dl
movsx edx, byte [ecx*4 + 0x5b6661]
movzx edx, byte [esp + edx + 0x35]
mov byte [ebx - 3], dl
movsx edx, byte [ecx*4 + 0x5b6661]
movzx edx, byte [esp + edx + 0x36]
mov byte [ebx - 2], dl
movsx edx, byte [ecx*4 + 0x5b6662]
movzx edx, byte [esp + edx + 0x34]
mov byte [ebp - 8], dl
movsx edx, byte [ecx*4 + 0x5b6662]
movzx edx, byte [esp + edx + 0x35]
mov byte [ebp - 7], dl
movsx edx, byte [ecx*4 + 0x5b6662]
movzx edx, byte [esp + edx + 0x36]
mov byte [ebp - 6], dl
movsx edx, byte [ecx*4 + 0x5b6663]
movzx edx, byte [esp + edx + 0x34]
mov byte [ebp - 4], dl
movsx edx, byte [ecx*4 + 0x5b6663]
movzx edx, byte [esp + edx + 0x35]
mov byte [ebp - 3], dl
movsx ecx, byte [ecx*4 + 0x5b6663]
movzx eax, byte [esp + ecx + 0x36]
mov byte [ebp - 2], al
add ebx, 0xfffffff8
add ebp, 0xfffffff8
mov eax, dword [esp + 0x48]
add eax, 2
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x70]
cmp eax, edx
jl 0x435476
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x44]
add edx, dword [esp + 0x2c]
add esi, 0xfffffffe
mov eax, dword [esp + 0x24]
cmp esi, eax
jge 0x43543e
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x24]
inc ebx
inc eax
mov edx, dword [esp + 0x10]
cmp eax, edx
jl 0x43520f
add esp, 0x4c
pop ebx
pop ebp
pop esi
pop edi
ret