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

Disassembly:
push ebx
mov ebx, dword [esp + 8]
mov eax, dword [ebx + 0x80]
cmp dword [ebx + 0x94], eax
jae 0x42376b
push 2
lea eax, [ebx + 0x24]
push eax
call fcn.004288f7
pop edx
test eax, eax
pop ecx
je 0x42370f
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x423702
push eax
jmp 0x423707
push 0xcd9f00
push ebx
call fcn.00423f30
pop ecx
pop eax
cmp dword [ebx + 0x34], 0
jne 0x423732
push dword [ebx + 0x60]
push dword [ebx + 0x5c]
push ebx
call fcn.00425a5a
mov eax, dword [ebx + 0x5c]
add esp, 0xc
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x34], eax
jmp 0x4236e7
mov eax, dword [ebx + 0x60]
mov edx, dword [ebx + 0x34]
cmp eax, edx
je 0x423757
sub eax, edx
push eax
push dword [ebx + 0x5c]
push ebx
call fcn.00425a5a
mov eax, dword [ebx + 0x5c]
add esp, 0xc
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x34], eax
mov dword [ebx + 0xe8], 0
mov dword [esp + 8], ebx
pop ebx
jmp 0x423b77
pop ebx
ret
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xe0]
test ecx, ecx
je 0x423b87
jmp ecx
ret
push ebx
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x24], eax
mov eax, dword [ebx + 0xb4]
inc eax
mov dword [ebx + 0x28], eax
push 0
lea eax, [ebx + 0x24]
push eax
call fcn.004288f7
pop ecx
test eax, eax
pop edx
je 0x426101
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x4260f4
push eax
jmp 0x4260f9
push 0xcda6b9
push ebx
call fcn.00423f30
pop eax
pop edx
cmp dword [ebx + 0x34], 0
jne 0x426122
push dword [ebx + 0x60]
push dword [ebx + 0x5c]
push ebx
call fcn.00425a5a
mov eax, dword [ebx + 0x5c]
add esp, 0xc
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x60]
mov dword [ebx + 0x34], eax
cmp dword [ebx + 0x28], 0
jne 0x4260d9
mov edx, dword [ebx + 0x98]
test edx, edx
je 0x426144
mov eax, dword [ebx + 0x9c]
mov dword [ebx + 0x9c], edx
mov dword [ebx + 0x98], eax
push ebx
call fcn.00425d1a
mov edx, dword [ebx + 0xe8]
inc edx
mov dword [ebx + 0xe8], edx
pop eax
mov eax, dword [ebx + 0xe4]
test eax, eax
je 0x426170
cmp edx, eax
jb 0x426170
mov dword [esp + 8], ebx
pop ebx
jmp 0x4236d0
pop ebx
ret
push ebp
push edi
push esi
push ebx
sub esp, 0xa4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xa0], eax
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0xa0]
movzx edx, byte [edx + 0xd5]
mov ecx, dword [eax + 4]
mov esi, dword [esi + 0x98]
mov byte [esp + 0x7c], dl
shr edx, 3
mov dword [esp + 0x78], ecx
movzx eax, byte [eax + 0xb]
mov dword [esp + 0x9c], esi
mov dword [esp + 0x90], 0x7fffffff
add eax, 7
sar eax, 3
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x9c]
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], eax
xor eax, eax
cmp byte [esp + 0x7c], 8
setne al
test eax, edx
je 0x426239
mov ecx, dword [esp + 0x98]
xor ebx, ebx
inc ecx
cmp ebx, dword [esp + 0x78]
jae 0x426232
mov edx, dword [esp + 0x78]
movzx eax, byte [ecx]
cmp eax, 0x7f
jg 0x426226
add ebx, eax
jmp 0x42622e
sub ebx, eax
lea ebx, [ebx + 0x100]
inc ecx
dec edx
jne 0x42621a
mov dword [esp + 0x90], ebx
cmp byte [esp + 0x7c], 0x10
jne 0x4262b5
mov ecx, dword [esp + 0xa0]
xor edx, edx
mov esi, dword [esp + 0x98]
mov ebx, dword [ecx + 0xa0]
inc esi
inc ebx
cmp edx, dword [esp + 0x8c]
jae 0x426279
mov edx, dword [esp + 0x8c]
movzx eax, byte [esi]
inc esi
mov byte [ebx], al
inc ebx
dec edx
jne 0x426268
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x98]
inc ecx
cmp edx, dword [esp + 0x78]
jae 0x42629c
mov eax, dword [esp + 0x78]
sub eax, edx
mov edx, eax
movzx eax, byte [esi]
inc esi
sub al, byte [ecx]
inc ecx
mov byte [ebx], al
inc ebx
dec edx
jne 0x42628f
mov edx, dword [esp + 0xa0]
mov edx, dword [edx + 0xa0]
mov dword [esp + 0x98], edx
jmp 0x4263c1
test byte [esp + 0x7c], 0x10
je 0x42636b
mov ecx, dword [esp + 0xa0]
xor edx, edx
xor ebx, ebx
mov edi, dword [esp + 0x98]
mov esi, dword [ecx + 0xa0]
inc edi
inc esi
cmp edx, dword [esp + 0x8c]
jae 0x42630f
mov ebx, dword [esp + 0x8c]
movzx eax, byte [edi]
mov byte [esi], al
movzx eax, al
cmp eax, 0x7f
jg 0x4262fb
add edx, eax
jmp 0x426303
sub edx, eax
lea edx, [edx + 0x100]
inc edi
inc esi
dec ebx
jne 0x4262ea
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x98]
inc ecx
cmp ebx, dword [esp + 0x78]
jae 0x426347
movzx eax, byte [edi]
sub al, byte [ecx]
mov byte [esi], al
movzx eax, al
cmp eax, 0x7f
jg 0x426330
add edx, eax
jmp 0x426338
sub edx, eax
lea edx, [edx + 0x100]
cmp edx, dword [esp + 0x90]
ja 0x42636b
inc ebx
inc edi
inc ecx
inc esi
jmp 0x426317
cmp edx, dword [esp + 0x90]
jae 0x42636b
mov dword [esp + 0x90], edx
mov esi, dword [esp + 0xa0]
mov esi, dword [esi + 0xa0]
mov dword [esp + 0x98], esi
cmp byte [esp + 0x7c], 0x20
jne 0x4263c1
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x9c]
mov ebx, dword [eax + 0xa4]
inc esi
inc ecx
inc ebx
cmp dword [esp + 0x78], 0
je 0x4263a8
mov edx, dword [esp + 0x78]
movzx eax, byte [esi]
inc esi
sub al, byte [ecx]
inc ecx
mov byte [ebx], al
inc ebx
dec edx
jne 0x42639b
mov edx, dword [esp + 0xa0]
mov edx, dword [edx + 0xa4]
mov dword [esp + 0x98], edx
jmp 0x4264ff
test byte [esp + 0x7c], 0x20
je 0x426442
mov ecx, dword [esp + 0xa0]
xor edx, edx
xor edi, edi
mov esi, dword [esp + 0x94]
mov ebx, dword [ecx + 0xa4]
mov ecx, dword [esp + 0x9c]
inc esi
inc ebx
inc ecx
cmp edx, dword [esp + 0x78]
jae 0x42641e
movzx eax, byte [esi]
inc esi
sub al, byte [ecx]
inc ecx
mov byte [ebx], al
movzx eax, al
inc ebx
cmp eax, 0x7f
jg 0x426406
add edx, eax
jmp 0x42640e
sub edx, eax
lea edx, [edx + 0x100]
cmp edx, dword [esp + 0x90]
ja 0x426442
inc edi
cmp edi, dword [esp + 0x78]
jmp 0x4263ee
cmp edx, dword [esp + 0x90]
jae 0x426442
mov dword [esp + 0x90], edx
mov esi, dword [esp + 0xa0]
mov esi, dword [esi + 0xa4]
mov dword [esp + 0x98], esi
cmp byte [esp + 0x7c], 0x40
jne 0x4264ff
mov edx, dword [esp + 0xa0]
xor ebx, ebx
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x9c]
mov ebp, dword [edx + 0xa8]
inc eax
mov dword [esp + 0x74], eax
inc edi
inc ebp
cmp ebx, dword [esp + 0x8c]
jae 0x4264a3
mov ebx, dword [esp + 0x8c]
movzx eax, byte [edi]
inc edi
mov ecx, dword [esp + 0x74]
movzx edx, byte [ecx]
shr al, 1
inc ecx
mov dword [esp + 0x74], ecx
sub dl, al
mov byte [ebp], dl
inc ebp
dec ebx
jne 0x426481
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x94]
inc esi
cmp ebx, dword [esp + 0x78]
mov dword [esp], esi
jae 0x4264ed
mov eax, dword [esp + 0x78]
sub eax, ebx
mov ebx, eax
movzx edx, byte [edi]
mov esi, 2
mov ecx, dword [esp]
inc edi
movzx eax, byte [ecx]
lea ecx, [edx + eax]
mov eax, ecx
cdq
idiv esi
mov edx, dword [esp + 0x74]
mov ecx, eax
movzx eax, byte [edx]
inc edx
inc dword [esp]
mov dword [esp + 0x74], edx
sub al, cl
mov byte [ebp], al
inc ebp
dec ebx
jne 0x4264bc
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 0xa8]
jmp 0x426902
test byte [esp + 0x7c], 0x40
je 0x42660d
mov eax, dword [esp + 0xa0]
xor ebx, ebx
xor edi, edi
mov esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x9c]
mov edx, dword [eax + 0xa8]
inc esi
inc ebp
inc edx
cmp ebx, dword [esp + 0x8c]
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], edx
jae 0x426582
mov edi, dword [esp + 0x8c]
movzx eax, byte [ebp]
inc ebp
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
shr al, 1
movzx edx, byte [ecx]
inc ecx
mov dword [esp + 0x70], ecx
sub dl, al
movzx eax, dl
mov byte [esi], dl
inc esi
cmp eax, 0x7f
mov dword [esp + 0x6c], esi
jg 0x426570
add ebx, eax
jmp 0x426578
sub ebx, eax
lea ebx, [ebx + 0x100]
dec edi
jne 0x426544
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x94]
inc eax
mov dword [esp], eax
cmp edi, dword [esp + 0x78]
jae 0x4265e9
movzx edx, byte [ebp]
mov esi, 2
mov ecx, dword [esp]
inc ebp
movzx eax, byte [ecx]
lea ecx, [edx + eax]
mov eax, ecx
cdq
idiv esi
mov edx, dword [esp + 0x70]
mov ecx, eax
movzx eax, byte [edx]
inc edx
inc dword [esp]
mov dword [esp + 0x70], edx
sub al, cl
mov ecx, dword [esp + 0x6c]
mov byte [ecx], al
movzx eax, al
inc ecx
mov dword [esp + 0x6c], ecx
cmp eax, 0x7f
jg 0x4265d5
add ebx, eax
jmp 0x4265dd
sub ebx, eax
lea ebx, [ebx + 0x100]
cmp ebx, dword [esp + 0x90]
ja 0x42660d
inc edi
jmp 0x42658d
cmp ebx, dword [esp + 0x90]
jae 0x42660d
mov dword [esp + 0x90], ebx
mov esi, dword [esp + 0xa0]
mov esi, dword [esi + 0xa8]
mov dword [esp + 0x98], esi
cmp byte [esp + 0x7c], 0x80
jne 0x42674d
mov edx, dword [esp + 0xa0]
xor ebp, ebp
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x9c]
mov ecx, dword [edx + 0xac]
inc eax
mov dword [esp + 0x68], eax
inc esi
inc ecx
cmp ebp, dword [esp + 0x8c]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], esi
jae 0x426680
mov ebp, dword [esp + 0x8c]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
movzx eax, byte [edx]
inc edx
sub al, byte [ecx]
inc ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x68], edx
mov byte [esi], al
inc esi
dec ebp
mov dword [esp + 0x64], esi
jne 0x426654
mov ebp, dword [esp + 0x8c]
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x9c]
inc eax
mov dword [esp + 0x58], eax
inc edx
cmp ebp, dword [esp + 0x78]
mov dword [esp + 0x5c], edx
jae 0x4268f5
mov ecx, dword [esp + 0x78]
sub ecx, ebp
mov ebp, ecx
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
movzx esi, byte [esi]
inc dword [esp + 0x60]
mov ebx, esi
mov dword [esp + 0x50], esi
movzx eax, byte [eax]
inc dword [esp + 0x5c]
sub ebx, eax
mov dword [esp + 0x4c], eax
movzx edx, byte [edx]
inc dword [esp + 0x58]
mov esi, edx
sub esi, eax
mov dword [esp + 0x54], edx
mov eax, ebx
mov edi, esi
sar eax, 0x1f
mov edx, eax
xor edx, ebx
sub edx, eax
mov eax, esi
sar eax, 0x1f
xor edi, eax
lea esi, [ebx + esi]
sub edi, eax
mov eax, esi
mov ebx, dword [esp + 0x54]
sar eax, 0x1f
xor esi, eax
sub esi, eax
cmp edx, edi
setle byte [esp + 0x3c]
xor eax, eax
cmp edx, esi
movzx ecx, byte [esp + 0x3c]
setle al
test ecx, eax
jne 0x426728
cmp edi, esi
mov ebx, dword [esp + 0x50]
jle 0x426728
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x68], esi
sub al, bl
mov byte [edx], al
inc edx
dec ebp
mov dword [esp + 0x64], edx
jne 0x4266aa
jmp 0x4268f5
cmp byte [esp + 0x7c], 0
jns 0x426909
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x9c]
mov edx, dword [eax + 0xac]
inc esi
inc ecx
inc edx
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x8c]
cmp dword [esp + 0x24], esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ecx
jae 0x4267f5
mov dword [esp + 0x20], esi
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
movzx eax, byte [edx]
inc edx
sub al, byte [ecx]
inc ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], edx
mov byte [esi], al
movzx eax, al
inc esi
mov dword [esp + 0x34], esi
cmp eax, 0x7f
jg 0x4267d3
add dword [esp + 0x24], eax
jmp 0x4267e4
mov edx, dword [esp + 0x24]
sub edx, eax
mov eax, edx
add eax, 0x100
mov dword [esp + 0x24], eax
dec dword [esp + 0x20]
jne 0x4267a3
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x78]
inc esi
inc eax
cmp dword [esp + 0x20], edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], eax
jae 0x4268e8
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
movzx ecx, byte [ecx]
inc dword [esp + 0x30]
mov dword [esp + 0x18], ecx
movzx ebp, byte [esi]
inc esi
mov dword [esp + 0x2c], esi
movzx eax, byte [eax]
sub ecx, ebp
inc dword [esp + 0x28]
mov esi, eax
sub esi, ebp
mov dword [esp + 0x1c], eax
mov eax, ecx
sar eax, 0x1f
mov edx, eax
mov edi, esi
xor edx, ecx
sub edx, eax
mov eax, esi
sar eax, 0x1f
xor edi, eax
lea esi, [ecx + esi]
sub edi, eax
mov eax, esi
mov ecx, dword [esp + 0x1c]
sar eax, 0x1f
xor esi, eax
sub esi, eax
cmp edx, edi
setle byte [esp + 8]
xor eax, eax
cmp edx, esi
movzx edx, byte [esp + 8]
setle al
test edx, eax
jne 0x426892
cmp edi, esi
mov ecx, dword [esp + 0x18]
jle 0x426892
mov ecx, ebp
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x38], esi
sub al, cl
mov byte [edx], al
movzx eax, al
inc edx
mov dword [esp + 0x34], edx
cmp eax, 0x7f
jg 0x4268b9
add dword [esp + 0x24], eax
jmp 0x4268ca
mov ecx, dword [esp + 0x24]
sub ecx, eax
mov eax, ecx
add eax, 0x100
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x90]
cmp dword [esp + 0x24], esi
ja 0x426909
inc dword [esp + 0x20]
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x20], eax
jmp 0x426815
mov edx, dword [esp + 0x90]
cmp dword [esp + 0x24], edx
jae 0x426909
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 0xac]
mov dword [esp + 0x98], ecx
mov esi, dword [esp + 0x98]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xbc], esi
mov dword [esp + 0xb8], eax
add esp, 0xa4
pop ebx
pop esi
pop edi
pop ebp
jmp 0x4260c3