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

Disassembly:
push 0xffffffffffffffff
push 0x431500
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xa0]
xor esi, esi
mov ebp, ecx
mov eax, dword [edi + 4]
mov dword [esp + 0x1c], ebp
cmp eax, esi
je 0x419471
mov ecx, dword [edi + 8]
jmp 0x419473
xor ecx, ecx
add ecx, ecx
cmp ecx, 0x400
jbe 0x41948e
cmp eax, esi
je 0x419488
mov eax, dword [edi + 8]
add eax, eax
jmp 0x419493
xor eax, eax
mov eax, eax
jmp 0x419493
mov eax, 0x400
push eax
mov ecx, ebp
mov dword [ebp + 4], esi
mov dword [ebp + 8], esi
mov dword [ebp], 0x432efc
call fcn.0041908a
mov edx, dword [esp + 0x98]
lea eax, [esp + 0x28]
push edx
push eax
mov dword [esp + 0x98], esi
mov dword [ebp], 0x432f00
call fcn.0041924a
mov ecx, dword [esp + 0xa4]
lea edx, [esp + 0x38]
push ecx
push edx
mov byte [esp + 0xa0], 1
call fcn.0041924a
add esp, 0x10
mov eax, dword [edi + 4]
mov ebx, 2
cmp eax, esi
mov byte [esp + 0x90], bl
je 0x419a56
cmp dword [edi + 8], esi
je 0x419a56
push esi
lea ecx, [esp + 0x24]
call fcn.0041a64a
lea eax, [esp + 0x20]
lea ecx, [esp + 0x28]
push eax
mov byte [esp + 0x94], 3
call fcn.0041a5da
mov esi, eax
lea ecx, [esp + 0x20]
neg esi
sbb esi, esi
mov byte [esp + 0x90], bl
inc esi
call fcn.0041a6fa
test esi, esi
jne 0x419a54
push esi
lea ecx, [esp + 0x24]
call fcn.0041a64a
lea ecx, [esp + 0x20]
mov byte [esp + 0x90], 4
push ecx
lea ecx, [esp + 0x34]
call fcn.0041a5da
mov esi, eax
lea ecx, [esp + 0x20]
neg esi
sbb esi, esi
mov byte [esp + 0x90], bl
inc esi
call fcn.0041a6fa
test esi, esi
jne 0x419a54
lea ecx, [esp + 0x28]
call fcn.0041a73a
cmp eax, ebx
jb 0x419a54
lea ecx, [esp + 0x28]
call fcn.0041a73a
lea edx, [eax*4 - 4]
mov eax, dword [ebp + 4]
cmp eax, esi
mov dword [esp + 0x14], edx
je 0x4195b4
mov eax, dword [ebp + 8]
jmp 0x4195b6
xor eax, eax
mov ebx, 0x432efc
push eax
lea ecx, [esp + 0x64]
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x64], ebx
call fcn.0041908a
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov ecx, dword [ebp + 4]
mov byte [esp + 0x90], 5
neg eax
sbb eax, eax
and eax, edx
cmp ecx, esi
je 0x4195f3
mov ecx, dword [ebp + 8]
jmp 0x4195f5
xor ecx, ecx
cmp eax, ecx
je 0x41961c
push esi
mov ecx, ebp
call fcn.0041908a
push esi
lea ecx, [esp + 0x64]
mov dword [esp + 0x64], ebx
call fcn.0041908a
mov dword [esp + 0x60], 0x432ef8
jmp 0x419a5e
lea eax, [esp + 0x28]
lea ecx, [esp + 0x78]
push eax
call fcn.0041a68a
lea ecx, [esp + 0x30]
mov byte [esp + 0x90], 6
push ecx
lea ecx, [esp + 0x84]
call fcn.0041a68a
xor ebp, ebp
mov byte [esp + 0x90], 7
mov dword [esp + 0x10], ebp
mov edx, dword [edi + 4]
test edx, edx
je 0x41965d
mov eax, dword [edi + 8]
jmp 0x41965f
xor eax, eax
lea ecx, [ebp + 1]
cmp ecx, eax
jae 0x419971
mov eax, ebp
mov ebp, ecx
test edx, edx
je 0x41967c
cmp eax, dword [edi + 8]
jae 0x41967c
mov bl, byte [edx + eax]
jmp 0x41967e
xor bl, bl
test edx, edx
mov byte [esp + 0x18], bl
je 0x41968b
mov eax, dword [edi + 8]
jmp 0x41968d
xor eax, eax
mov edx, dword [esp + 0x18]
push 0
and edx, 0xff
add edx, ebp
cmp edx, eax
ja 0x4198bd
lea ecx, [esp + 0x24]
call fcn.0041a64a
mov al, bl
dec bl
test al, al
mov byte [esp + 0x90], 9
mov byte [esp + 0x18], bl
je 0x4197a2
mov esi, dword [esp + 0x18]
and esi, 0xff
inc esi
mov eax, dword [edi + 4]
mov ecx, ebp
inc ebp
test eax, eax
je 0x4196e7
cmp ecx, dword [edi + 8]
jae 0x4196e7
xor edx, edx
mov dl, byte [eax + ecx]
mov eax, edx
jmp 0x4196e9
xor eax, eax
and eax, 0xff
lea ecx, [esp + 0x40]
push eax
call fcn.0041a64a
push 0x100
lea ecx, [esp + 0x3c]
mov byte [esp + 0x94], 0xa
call fcn.0041a64a
lea eax, [esp + 0x38]
lea ecx, [esp + 0x20]
push eax
lea edx, [esp + 0x54]
push ecx
push edx
mov byte [esp + 0x9c], 0xb
call fcn.0041a9ba
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x54]
push ecx
push eax
push edx
mov byte [esp + 0xa8], 0xc
call fcn.0041a8ba
add esp, 0x18
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x94], 0xd
call fcn.0041a6aa
lea ecx, [esp + 0x48]
mov byte [esp + 0x90], 0xc
call fcn.0041a6fa
lea ecx, [esp + 0x50]
mov byte [esp + 0x90], 0xb
call fcn.0041a6fa
lea ecx, [esp + 0x38]
mov byte [esp + 0x90], 0xa
call fcn.0041a6fa
lea ecx, [esp + 0x40]
mov byte [esp + 0x90], 9
call fcn.0041a6fa
dec esi
jne 0x4196cf
lea eax, [esp + 0x20]
lea ecx, [esp + 0x58]
push eax
push ecx
lea ecx, [esp + 0x80]
call fcn.00419d7a
lea edx, [esp + 0x6c]
push eax
push edx
mov byte [esp + 0x98], 0xe
call fcn.0041914a
add esp, 8
lea ecx, [esp + 0x58]
mov byte [esp + 0x90], 0x10
call fcn.0041a6fa
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x10]
mov eax, edx
neg eax
sbb eax, eax
and eax, edi
mov edi, dword [esp + 0x14]
add ecx, edi
cmp ecx, eax
ja 0x4198d5
mov eax, dword [esp + 0x70]
test eax, eax
je 0x419815
mov eax, dword [esp + 0x74]
cmp eax, edi
ja 0x419843
mov edi, eax
jmp 0x419817
xor edi, edi
mov ecx, dword [esp + 0x14]
cmp edi, ecx
jae 0x419843
sub ecx, edi
mov ebx, dword [esp + 0x10]
mov eax, ebx
inc ebx
test edx, edx
mov dword [esp + 0x10], ebx
je 0x41983e
cmp eax, dword [esp + 0x68]
jae 0x41983e
mov byte [edx + eax], 0
mov edx, dword [esp + 0x64]
dec ecx
jne 0x419821
jmp 0x419847
mov ebx, dword [esp + 0x10]
xor esi, esi
test edi, edi
jbe 0x419885
mov eax, dword [esp + 0x70]
test eax, eax
je 0x419866
cmp esi, dword [esp + 0x74]
jae 0x419866
mov ecx, dword [esp + 0x70]
xor eax, eax
mov al, byte [ecx + esi]
jmp 0x419868
xor eax, eax
mov ecx, ebx
inc ebx
test edx, edx
je 0x41987c
cmp ecx, dword [esp + 0x68]
jae 0x41987c
mov byte [edx + ecx], al
mov edx, dword [esp + 0x64]
inc esi
cmp esi, edi
jb 0x41984d
mov dword [esp + 0x10], ebx
push 0
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], 0x432efc
call fcn.0041908a
lea ecx, [esp + 0x20]
mov dword [esp + 0x6c], 0x432ef8
mov byte [esp + 0x90], 7
call fcn.0041a6fa
mov edi, dword [esp + 0xa0]
jmp 0x419651
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.0041908a
mov byte [esp + 0x90], 8
jmp 0x4199f6
mov edi, dword [esp + 0x1c]
push 0
mov ecx, edi
call fcn.0041908a
mov ebx, 0x432efc
push 0
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], ebx
call fcn.0041908a
mov esi, 0x432ef8
lea ecx, [esp + 0x20]
mov dword [esp + 0x6c], esi
mov byte [esp + 0x90], 7
call fcn.0041a6fa
lea ecx, [esp + 0x80]
mov byte [esp + 0x90], 0x11
call fcn.0041a6fa
lea ecx, [esp + 0x78]
mov byte [esp + 0x90], 5
call fcn.0041a6fa
push 0
lea ecx, [esp + 0x64]
mov dword [esp + 0x64], ebx
call fcn.0041908a
lea ecx, [esp + 0x30]
mov dword [esp + 0x60], esi
mov byte [esp + 0x90], 1
call fcn.0041a6fa
lea ecx, [esp + 0x28]
mov byte [esp + 0x90], 0
call fcn.0041a6fa
mov eax, edi
jmp 0x419a82
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
xor edx, edx
xor esi, esi
div ecx
mov dword [esp + 0x18], esi
test eax, eax
jbe 0x4199e3
xor edi, edi
mov dword [esp + 0x20], edi
test ecx, ecx
jbe 0x4199d0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x64]
test edx, edx
je 0x4199aa
cmp edi, dword [esp + 0x68]
jae 0x4199aa
xor ecx, ecx
mov cl, byte [edi + edx]
jmp 0x4199ac
xor ecx, ecx
mov ebp, dword [esp + 0x1c]
xor cl, 0xd1
mov edx, dword [ebp + 4]
test edx, edx
je 0x4199c2
cmp esi, dword [ebp + 8]
jae 0x4199c2
mov byte [esi + edx], cl
inc edi
add esi, eax
dec ebx
jne 0x419995
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
inc esi
add edi, ecx
cmp esi, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], edi
jb 0x41998d
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [esi + 8], edx
mov byte [esp + 0x90], 0x12
lea ecx, [esp + 0x80]
call fcn.0041a6fa
lea ecx, [esp + 0x78]
mov byte [esp + 0x90], 5
call fcn.0041a6fa
push 0
lea ecx, [esp + 0x64]
mov dword [esp + 0x64], 0x432efc
call fcn.0041908a
lea ecx, [esp + 0x30]
mov dword [esp + 0x60], 0x432ef8
mov byte [esp + 0x90], 1
call fcn.0041a6fa
lea ecx, [esp + 0x28]
mov byte [esp + 0x90], 0
call fcn.0041a6fa
mov eax, esi
jmp 0x419a82
xor esi, esi
push esi
mov ecx, ebp
call fcn.0041908a
lea ecx, [esp + 0x30]
mov byte [esp + 0x90], 1
call fcn.0041a6fa
lea ecx, [esp + 0x28]
mov byte [esp + 0x90], 0
call fcn.0041a6fa
mov eax, ebp
mov ecx, dword [esp + 0x88]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x84
ret 0xc