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

Disassembly:
sub esp, 0xc0
mov eax, dword [0x302fd3d4]
xor eax, esp
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x48], edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xc8]
mov edx, dword [ecx]
mov dword [esp + 0x24], edx
mov edx, dword [ecx + 0x4c]
imul edx, dword [ecx + 0x48]
push ebx
push esi
movsx esi, word [ecx + 0x46]
sar edx, 0x10
push edi
xor edi, edi
lea edx, [edx + esi + 0x8000]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x64], edx
lea ebx, [edi + 1]
cmp eax, edi
je 0x43af66
mov edx, dword [ecx + 0x58]
mov dword [esp + 0x14], edx
mov edx, dword [ecx + 0x5c]
mov dword [esp + 0x10], edx
mov edx, dword [ecx + 0x60]
mov dword [esp + 0x38], edx
mov edx, dword [ecx + 0x64]
mov dword [esp + 0x24], edx
mov edx, dword [ecx + 0x78]
mov dword [esp + 0x34], edx
mov edx, dword [ecx + 0x7c]
mov dword [esp + 0x50], edx
mov edx, dword [ecx + 0x80]
mov dword [esp + 0x4c], edx
mov edx, dword [ecx + 0x84]
mov dword [esp + 0x58], edx
cmp eax, ebx
jne 0x43af38
cmp dword [esp + 0xe0], ebx
je 0x43af3a
xor ebx, ebx
mov dword [esp + 0x40], ebx
cmp dword [ecx + 0x40], edi
jne 0x43af46
mov dword [ecx + 4], edi
cmp dword [esp + 0xe4], edi
je 0x43af52
mov dword [ecx + 4], edi
cmp dword [esp + 0xdc], edi
mov dword [esp + 0x28], edi
jle 0x43b4df
push ebp
jmp 0x43afa4
mov eax, dword [ecx + 0x54]
mov edx, dword [ecx + 0x50]
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x70]
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], eax
mov eax, dword [ecx + 0x74]
mov dword [esp + 0x14], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], eax
jmp 0x43af38
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x2c]
mov esi, dword [eax + ecx*4]
cmp esi, 1
jne 0x43afc4
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x20], eax
jmp 0x43afcf
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 8]
mov dword [esp + 0x20], edx
mov ebp, dword [esp + 0x30]
mov dl, byte [ebp]
mov al, dl
mov cl, bl
sar al, cl
mov dword [esp + 0x60], ebp
mov byte [esp + 0x9c], al
cmp dword [esp + 0xdc], edi
je 0x43b003
cmp dword [esp + 0xe4], 1
jne 0x43b003
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x6c]
jmp 0x43b00a
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x68]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
cmp dword [ecx + 4], edi
je 0x43b0ba
mov eax, ecx
movsx ecx, byte [eax + 0x10]
add eax, 0x10
movsx eax, dl
sub eax, ecx
mov ecx, ebx
sar eax, cl
mov byte [esp + 0x6c], al
cmp dword [esp + 0xdc], edi
je 0x43b07b
cmp dword [esp + 0xe4], 1
jne 0x43b07b
mov ebx, dword [esp + 0x3c]
test al, al
movsx eax, al
jge 0x43b05b
mov ecx, ebx
neg ecx
cmp ecx, eax
jge 0x43b065
mov ecx, eax
jmp 0x43b063
cmp eax, ebx
mov ecx, eax
jl 0x43b063
mov ecx, ebx
cmp ecx, eax
je 0x43b075
mov byte [esp + 0x6c], cl
mov dword [esp + 0x1c], 0x2710
jmp 0x43b0ba
mov eax, dword [esp + 0x54]
jmp 0x43b0b0
mov ebx, dword [esp + 0x18]
test al, al
movsx eax, al
jge 0x43b092
mov ecx, ebx
neg ecx
cmp ecx, eax
jge 0x43b09c
mov ecx, eax
jmp 0x43b09a
cmp eax, ebx
mov ecx, eax
jl 0x43b09a
mov ecx, ebx
cmp ecx, eax
je 0x43b0ac
mov dword [esp + 0x1c], 0x2710
mov byte [esp + 0x6c], cl
jmp 0x43b0ba
mov eax, dword [esp + 0x38]
add ecx, eax
movzx eax, byte [ecx + ebx]
mov dword [esp + 0x1c], eax
cmp esi, edi
jne 0x43b0fd
mov ecx, dword [esp + 0x34]
cmp ecx, edi
jl 0x43b0d6
mov eax, dword [esp + 0x10]
jg 0x43b101
add eax, 0x10
sub eax, ecx
mov byte [eax + 1], dl
jmp 0x43b104
mov eax, ecx
neg eax
cmp eax, edi
jle 0x43b0ed
mov eax, dword [esp + 0x10]
add eax, 0x10
mov byte [eax + 1], dl
mov byte [eax + 2], dl
jmp 0x43b104
mov ecx, dword [esp + 0x10]
add ecx, 0x10
mov byte [ecx + eax], dl
mov byte [ecx + eax + 1], dl
jmp 0x43b106
mov eax, dword [esp + 0x10]
add eax, 0x10
mov byte [eax], dl
cmp dword [esp + 0xdc], edi
je 0x43b181
cmp dword [esp + 0xe4], 1
jne 0x43b181
mov esi, dword [esp + 0x20]
lea eax, [esi - 1]
cmp eax, edi
jle 0x43b146
mov cl, byte [eax + ebp]
movsx edx, byte [eax + ebp - 1]
movsx ebx, cl
sub ebx, edx
mov edx, dword [esp + 0x28]
cmp ebx, edx
jle 0x43b13f
sub cl, dl
mov byte [eax + ebp - 1], cl
dec eax
cmp eax, edi
jg 0x43b124
jmp 0x43b14a
mov edx, dword [esp + 0x28]
mov ecx, 1
cmp esi, ecx
jle 0x43b477
jmp 0x43b160
mov al, byte [ecx + ebp - 1]
movsx ebx, byte [ecx + ebp]
movsx esi, al
sub esi, ebx
cmp esi, edx
jle 0x43b176
sub al, dl
mov byte [ecx + ebp], al
mov esi, dword [esp + 0x20]
inc ecx
cmp ecx, esi
jl 0x43b160
jmp 0x43b1e2
mov esi, dword [esp + 0x20]
lea eax, [esi - 1]
cmp eax, edi
jle 0x43b1b2
lea esp, [esp]
mov cl, byte [eax + ebp]
movsx edx, byte [eax + ebp - 1]
movsx ebx, cl
sub ebx, edx
mov edx, dword [esp + 0x14]
cmp ebx, edx
jle 0x43b1ab
sub cl, dl
mov byte [eax + ebp - 1], cl
dec eax
cmp eax, edi
jg 0x43b190
jmp 0x43b1b6
mov edx, dword [esp + 0x14]
mov ecx, 1
cmp esi, ecx
jle 0x43b477
mov al, byte [ecx + ebp - 1]
movsx ebx, byte [ecx + ebp]
movsx esi, al
sub esi, ebx
cmp esi, edx
jle 0x43b1d9
sub al, dl
mov byte [ecx + ebp], al
mov esi, dword [esp + 0x20]
inc ecx
cmp ecx, esi
jl 0x43b1c3
cmp esi, 1
jle 0x43b477
mov esi, dword [esp + 0x34]
mov ebp, 2
mov dword [esp + 0x4c], ebp
sub ebp, esi
mov dword [esp + 0x48], 3
xor edx, edx
jmp 0x43b20a
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x60]
mov al, byte [ecx]
mov bl, byte [ecx + 1]
inc ecx
mov dword [esp + 0x60], ecx
movsx eax, al
movsx ecx, bl
sub ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x44]
sar eax, cl
cmp dword [esp + 0xdc], 0
mov byte [esp + edx + 0x9d], al
mov cl, al
je 0x43b284
cmp dword [esp + 0xe4], 1
jne 0x43b284
test cl, cl
movsx ecx, cl
jge 0x43b25a
mov eax, dword [esp + 0x28]
neg eax
cmp eax, ecx
jge 0x43b268
mov eax, ecx
jmp 0x43b266
cmp ecx, dword [esp + 0x28]
mov eax, ecx
jl 0x43b266
mov eax, dword [esp + 0x28]
cmp eax, ecx
je 0x43b278
mov byte [esp + edx + 0x9d], al
mov eax, 0x2710
jmp 0x43b2c5
mov ecx, dword [esp + 0x5c]
add eax, ecx
mov ecx, dword [esp + 0x28]
jmp 0x43b2c1
test cl, cl
movsx ecx, cl
jge 0x43b299
mov eax, dword [esp + 0x14]
neg eax
cmp eax, ecx
jge 0x43b2a7
mov eax, ecx
jmp 0x43b2a5
cmp ecx, dword [esp + 0x14]
mov eax, ecx
jl 0x43b2a5
mov eax, dword [esp + 0x14]
cmp eax, ecx
je 0x43b2b7
mov byte [esp + edx + 0x9d], al
mov eax, 0x2710
jmp 0x43b2c5
mov ecx, dword [esp + 0x50]
add eax, ecx
mov ecx, dword [esp + 0x14]
movzx eax, byte [eax + ecx]
mov edi, dword [esp + 0x10]
add dword [esp + 0x40], eax
cmp dword [edi + 4], 0
je 0x43b323
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x2c]
cmp dword [eax + ecx*4], 0
jne 0x43b30c
test esi, esi
jl 0x43b2f3
lea eax, [edx + 1]
cmp eax, esi
jl 0x43b30f
mov eax, ebp
jmp 0x43b30f
mov eax, esi
neg eax
lea ecx, [edx + 1]
cmp ecx, eax
jge 0x43b304
mov eax, dword [esp + 0x48]
jmp 0x43b30f
mov ecx, dword [esp + 0x4c]
add eax, ecx
jmp 0x43b30f
lea eax, [edx + 1]
add edi, 0x10
mov cl, bl
sub cl, byte [edi + eax]
mov al, cl
mov cl, byte [esp + 0x44]
sar al, cl
mov byte [esp + edx + 0x6d], al
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x2c]
cmp dword [eax + ecx*4], 0
jne 0x43b382
test esi, esi
lea esi, [edx + 1]
jl 0x43b351
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp esi, dword [esp + 0x34]
jl 0x43b38c
mov byte [eax + ebp], bl
mov byte [eax + ebp + 1], bl
jmp 0x43b38f
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
neg eax
add ecx, 0x10
cmp esi, eax
jge 0x43b373
mov eax, dword [esp + 0x48]
mov byte [eax + ecx], bl
mov byte [eax + ecx + 1], bl
mov byte [eax + ecx + 2], bl
jmp 0x43b38f
mov edi, dword [esp + 0x4c]
add edi, ecx
add eax, edi
mov byte [eax], bl
mov byte [eax + 1], bl
jmp 0x43b38f
mov eax, dword [esp + 0x10]
lea esi, [edx + 1]
add eax, 0x10
mov byte [esi + eax], bl
mov eax, dword [esp + 0x10]
cmp dword [eax + 4], 0
je 0x43b459
cmp dword [esp + 0xdc], 0
mov cl, byte [esp + edx + 0x6d]
lea edx, [esp + edx + 0x6d]
je 0x43b41f
cmp dword [esp + 0xe4], 1
jne 0x43b3eb
mov edi, dword [esp + 0x3c]
test cl, cl
movsx ecx, cl
jge 0x43b3d0
mov eax, edi
neg eax
cmp eax, ecx
jge 0x43b3da
mov eax, ecx
jmp 0x43b3d8
cmp ecx, edi
mov eax, ecx
jl 0x43b3d8
mov eax, edi
cmp eax, ecx
je 0x43b3e5
mov byte [edx], al
mov eax, 0x2710
jmp 0x43b455
mov ecx, dword [esp + 0x54]
jmp 0x43b44f
mov edi, dword [esp + 0x18]
test cl, cl
movsx ecx, cl
jge 0x43b402
mov eax, edi
neg eax
cmp eax, ecx
jge 0x43b40c
mov eax, ecx
jmp 0x43b40a
cmp ecx, edi
mov eax, ecx
jl 0x43b40a
mov eax, edi
cmp eax, ecx
je 0x43b417
mov byte [edx], al
mov eax, 0x2710
jmp 0x43b455
mov edx, dword [esp + 0x38]
add eax, edx
jmp 0x43b451
mov edi, dword [esp + 0x18]
test cl, cl
movsx ecx, cl
jge 0x43b436
mov eax, edi
neg eax
cmp eax, ecx
jge 0x43b440
mov eax, ecx
jmp 0x43b43e
cmp ecx, edi
mov eax, ecx
jl 0x43b43e
mov eax, edi
cmp eax, ecx
je 0x43b44b
mov byte [edx], al
mov eax, 0x2710
jmp 0x43b455
mov ecx, dword [esp + 0x38]
add eax, ecx
movzx eax, byte [eax + edi]
add dword [esp + 0x1c], eax
add dword [esp + 0x48], 3
add dword [esp + 0x4c], 2
mov edx, esi
lea eax, [edx + 1]
add ebp, 2
cmp eax, dword [esp + 0x20]
jl 0x43b206
xor edi, edi
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x10]
cmp esi, edi
jne 0x43b4f7
cmp dword [ebp + 4], edi
je 0x43b49d
mov ecx, dword [esp + 0x68]
imul ecx, dword [esp + 0x1c]
sar ecx, 0xe
inc ecx
sar ecx, 1
cmp dword [esp + 0x40], ecx
jg 0x43b506
mov eax, dword [esp + 0x58]
mov dword [ebp + 4], edi
mov dword [eax + esi*4], edi
lea ecx, [esp + 0x9c]
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
push ebx
push ecx
push edx
call 0x4799fe
add dword [esp + 0x3c], ebx
inc esi
add esp, 0xc
cmp esi, dword [esp + 0xe0]
mov dword [ebp + 4], 1
mov dword [esp + 0x2c], esi
jl 0x43afa0
pop ebp
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebx
xor ecx, esp
call 0x479a10
add esp, 0xc0
ret
mov edx, dword [esp + 0x40]
cmp dword [esp + 0x1c], edx
jge 0x43b49d
cmp dword [ebp + 4], edi
je 0x43b49d
mov eax, dword [esp + 0x58]
mov dword [eax + esi*4], 1
lea ecx, [esp + 0x6c]
jmp 0x43b4ae