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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
mov ebx, dword [esp + 0xf0]
mov ecx, dword [esp + 0xfc]
mov edi, dword [esp + 0xe0]
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xf4]
mov esi, dword [esp + 0xe8]
mov edx, dword [esp + 0xec]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0x1c], ebx
fnstcw word [esp + 0x6e]
mov ebx, edx
mov ecx, edx
movzx ebp, dx
mov dword [esp + 0xa0], edi
shr ebx, 0x1f
shr ecx, 0x10
mov dword [esp + 0xa4], eax
mov byte [esp + 0x34], bl
movzx ebx, bl
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edx
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x40], ebx
and cx, 0x7fff
je 0x42ab50
cmp cx, 0x7fff
je 0x42abf2
mov edx, esi
shl ebp, 3
movzx ecx, cx
mov dword [esp + 0x20], 0
shr edx, 0x1d
or ebp, 0x80000
shl esi, 3
or ebp, edx
mov edx, eax
shl eax, 3
shr edx, 0x1d
mov dword [esp + 0x7c], ebp
or esi, edx
mov edx, edi
shl edi, 3
shr edx, 0x1d
mov dword [esp + 0x78], esi
or eax, edx
mov dword [esp + 0x70], edi
xor edi, edi
mov dword [esp + 0x74], eax
lea eax, [ecx - 0x3fff]
mov dword [esp + 0x30], eax
xor eax, eax
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov edx, ebx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ebx
shr edx, 0x10
mov dword [esp + 0x88], ecx
movzx ecx, bx
shr ebx, 0x1f
mov byte [esp + 0x38], bl
movzx ebx, bl
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ebp
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x3c], ebx
and dx, 0x7fff
je 0x42aa90
cmp dx, 0x7fff
je 0x42aa62
mov ebx, dword [esp + 0x1c]
shl ecx, 3
movzx edx, dx
or ecx, 0x80000
sub edx, 0x3fff
sub dword [esp + 0x30], edx
shr ebx, 0x1d
or ecx, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x8c], ecx
mov ecx, ebp
shl ebp, 3
shl ebx, 3
shr ecx, 0x1d
or ecx, ebx
mov ebx, esi
shl esi, 3
mov dword [esp + 0x88], ecx
shr ebx, 0x1d
mov ecx, ebp
mov dword [esp + 0x80], esi
or ecx, ebx
mov dword [esp + 0x84], ecx
xor ecx, ecx
movzx ebx, byte [esp + 0x34]
xor bl, byte [esp + 0x38]
movzx esi, bl
mov byte [esp + 0x1c], bl
mov dword [esp + 0x2c], esi
cmp eax, 0xf
ja case.0x42aa5b.0
jmp dword [eax*4 + 0x46f4e8]
mov edx, dword [esp + 0x28]
or edx, dword [esp + 0x2c]
or edx, dword [esp + 0x1c]
sub dword [esp + 0x30], 0x7fff
or edx, ecx
jne 0x42ac70
or eax, 2
mov ecx, 2
jmp 0x42aa3e
mov edx, dword [esp + 0x28]
or edx, dword [esp + 0x2c]
or edx, dword [esp + 0x1c]
or edx, ecx
je 0x42ac62
cmp word [esp + 0x24], 0
je 0x42b3a4
bsr esi, ecx
mov edx, 0x20
xor esi, 0x1f
mov dword [esp + 0x24], esi
sub esi, 0xc
sub edx, esi
mov dword [esp + 0x1c], esi
xor esi, esi
mov dword [esp + 0x28], edx
mov edx, esi
mov dword [esp + 0x2c], eax
lea ebp, [esp + 0x80]
neg edx
lea edx, [ebp + edx*4 + 0xc]
mov ebx, dword [edx]
movzx ecx, byte [esp + 0x1c]
mov eax, dword [edx - 4]
shl ebx, cl
movzx ecx, byte [esp + 0x28]
shr eax, cl
or ebx, eax
mov dword [edx + esi*4], ebx
sub edx, 4
cmp edx, ebp
jne 0x42aae1
mov ebx, dword [esp + 0x80]
movzx ecx, byte [esp + 0x1c]
lea edx, [esi - 1]
mov eax, dword [esp + 0x2c]
shl ebx, cl
mov dword [esp + esi*4 + 0x80], ebx
jmp 0x42ab2b
mov dword [ebp + edx*4], 0
sub edx, 1
cmp edx, 0xffffffff
jne 0x42ab20
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
or dword [esp + 0x20], 2
lea esi, [esi + ecx + 0x3fef]
xor ecx, ecx
mov dword [esp + 0x30], esi
jmp 0x42aa3e
mov ecx, eax
or ecx, edi
or ecx, esi
or ecx, ebp
je 0x42ac43
test dx, dx
je 0x42b410
bsr eax, ebp
xor esi, esi
xor eax, 0x1f
lea ebp, [eax - 0xc]
mov dword [esp + 0x20], eax
mov eax, 0x20
sub eax, ebp
mov dword [esp + 0x30], eax
mov eax, esi
lea edi, [esp + 0x70]
neg eax
lea eax, [edi + eax*4 + 0xc]
mov edx, dword [eax]
mov ecx, ebp
mov ebx, dword [eax - 4]
shl edx, cl
movzx ecx, byte [esp + 0x30]
shr ebx, cl
or edx, ebx
mov dword [eax + esi*4], edx
sub eax, 4
cmp eax, edi
jne 0x42ab8d
mov edx, dword [esp + 0x70]
mov ecx, ebp
lea eax, [esi - 1]
shl edx, cl
mov dword [esp + esi*4 + 0x70], edx
mov ebx, dword [esp + 0x24]
cmp eax, 0xffffffff
je 0x42abd4
mov dword [edi + eax*4], 0
sub eax, 1
cmp eax, 0xffffffff
jne 0x42abc1
mov dword [esp + 0x24], ebx
mov ecx, 0xffffc011
sub ecx, dword [esp + 0x20]
xor eax, eax
xor edi, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], 2
jmp 0x42a970
or eax, edi
or eax, esi
or eax, ebp
jne 0x42ac20
mov eax, 8
mov dword [esp + 0x30], 0x7fff
mov edi, 2
mov dword [esp + 0x20], 0
jmp 0x42a970
movsx edx, dx
mov eax, 0xc
mov edi, 3
mov dword [esp + 0x30], 0x7fff
not edx
shr edx, 0x1f
mov dword [esp + 0x20], edx
jmp 0x42a970
mov eax, 4
mov dword [esp + 0x30], 0
mov edi, 1
mov dword [esp + 0x20], 0
jmp 0x42a970
or eax, 1
mov ecx, 1
jmp 0x42aa3e
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
or eax, 3
mov ecx, 3
mov esi, edx
or edx, 1
test bx, bx
cmovns esi, edx
mov dword [esp + 0x20], esi
jmp 0x42aa3e
or dword [esp + 0x20], 4
mov edx, 0x7fff
xor eax, eax
xor edi, edi
xor esi, esi
xor ebx, ebx
mov word [esp + 0xac], ax
movzx eax, word [esp + 0xae]
movzx ecx, byte [esp + 0x1c]
mov dword [esp + 0xa0], ebx
and ax, 0x8000
mov dword [esp + 0xa4], esi
or edx, eax
shl ecx, 7
mov eax, dword [esp + 0x20]
mov dword [esp + 0xa8], edi
mov word [esp + 0xae], dx
movzx edx, dh
and edx, 0x7f
or edx, ecx
mov byte [esp + 0xaf], dl
mov ebp, dword [esp + 0xac]
test eax, eax
jne 0x42b348
mov eax, dword [esp + 0xd0]
mov dword [eax], ebx
mov dword [eax + 4], esi
mov dword [eax + 8], edi
mov dword [eax + 0xc], ebp
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
xor edx, edx
xor eax, eax
xor edi, edi
xor esi, esi
xor ebx, ebx
jmp 0x42aca6
mov eax, dword [esp + 0x70]
mov ecx, edi
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x9c], eax
movzx eax, byte [esp + 0x34]
mov byte [esp + 0x1c], al
mov eax, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
cmp ecx, 2
je case.0x42aa5b.8
cmp ecx, 3
je 0x42ba40
cmp ecx, 1
je case.0x42aa5b.2
mov eax, dword [esp + 0x30]
lea ecx, [eax + 0x3fff]
test ecx, ecx
jle 0x42b470
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x9c]
mov ebx, esi
test al, 7
je 0x42ade1
movzx edi, word [esp + 0x6e]
or dword [esp + 0x20], 0x20
and di, 0xc00
cmp di, 0x400
je 0x42b7f0
cmp di, 0x800
je 0x42b780
test di, di
je 0x42b7b4
test edx, 0x100000
je 0x42ae00
and edx, 0xffefffff
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x9c], edx
add ecx, 0x4000
mov edi, dword [esp + 0x98]
shr eax, 3
shl ebx, 0x1d
or ebx, eax
shr esi, 3
mov eax, edi
shr edi, 3
mov dword [esp + 0x90], ebx
shl eax, 0x1d
or esi, eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x94], esi
mov edx, eax
shr eax, 3
shl edx, 0x1d
or edi, edx
mov dword [esp + 0x98], edi
cmp ecx, 0x7ffe
jg 0x42b2b4
mov edx, ecx
and dx, 0x7fff
jmp 0x42aca6
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x8c]
cmp eax, edx
jbe 0x42b5c1
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
movzx ecx, byte [esp + 0x34]
mov ebx, dword [esp + 0x70]
or ax, 0x8000
mov byte [esp + 0x1c], cl
mov edx, 0x7fff
jmp 0x42aca6
or dword [esp + 0x20], 1
mov eax, 0xffff8000
xor edi, edi
xor esi, esi
mov byte [esp + 0x1c], 1
xor ebx, ebx
jmp 0x42ae8c
mov eax, dword [esp + 0x80]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x9c], eax
movzx eax, byte [esp + 0x38]
mov byte [esp + 0x1c], al
jmp 0x42ad6f
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov ebp, dword [esp + 0x88]
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
cmp edx, esi
jbe 0x42b5f0
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov ebx, edi
shr edi, 1
shl ebx, 0x1f
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x24]
shl ebx, 0x1f
or edi, ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x70], edi
mov edi, ecx
shr ecx, 1
shr ebx, 1
shl edi, 0x1f
or ebx, edi
mov dword [esp + 0x74], ebx
mov ebx, edx
shr edx, 1
shl ebx, 0x1f
mov dword [esp + 0x7c], edx
or ecx, ebx
mov dword [esp + 0x78], ecx
mov ebx, ebp
shl esi, 0xc
mov ecx, eax
shr ebx, 0x14
shr ecx, 0x14
or ebx, esi
mov esi, ebp
shl eax, 0xc
mov ebp, 3
shl esi, 0xc
mov dword [esp + 0x8c], ebx
or ecx, esi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x80]
mov esi, ecx
shl ecx, 0xc
shr esi, 0x14
mov dword [esp + 0x80], ecx
or eax, esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x84], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x34], eax
cmp edx, ebx
je 0x42b0e5
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
div ebx
mov dword [esp + ebp*4 + 0x90], eax
mov eax, dword [esp + 0x34]
mov ecx, edx
mov edi, dword [esp + 0x80]
mov dword [esp + 0x7c], edx
mov ebx, dword [eax + ebp*4]
mov dword [esp + 0x50], edi
mov eax, ebx
mul edi
mov edi, edx
mov dword [esp + 0x44], eax
mov eax, ebx
mul dword [esp + 0x38]
mov esi, edx
add edi, eax
adc esi, 0
mov eax, dword [esp + 0x88]
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], eax
mov edi, eax
mov eax, ebx
mul edi
mov edi, edx
mov edx, dword [esp + ebp*4 + 0xa0]
add esi, eax
adc edi, 0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x28], edx
mov edx, ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], esi
cmp ecx, edi
jb 0x42b1c0
je 0x42b1b0
mov edi, dword [esp + 0x28]
sub edi, dword [esp + 0x44]
sbb esi, dword [esp + 0x48]
sbb eax, dword [esp + 0x40]
sbb edx, dword [esp + 0x3c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], edi
test eax, eax
je 0x42b291
mov ebx, dword [esp + 0x8c]
sub dword [esp + 0x24], 1
cmp edx, ebx
jne 0x42b012
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
mov dword [eax + edx*4], 0xffffffff
test edx, edx
je 0x42b2a7
mov ebp, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
xor ebx, ebx
mov edi, dword [esp + 0x38]
mov dword [esp + 0x28], ecx
mov eax, ebp
mov esi, edi
sub ebx, dword [esp + edx*4 + 0xa0]
sbb ecx, dword [esp + 0x70]
sbb esi, dword [esp + 0x74]
sbb eax, dword [esp + 0x78]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0x28]
mov eax, ebp
sub esi, ebx
sbb edi, ecx
sbb eax, dword [esp + 0x40]
sbb edx, dword [esp + 0x3c]
mov dword [esp + 0x7c], edx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], esi
cmp edx, ebx
jbe 0x42b0d8
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov dword [eax + esi*4], 0xfffffffe
mov eax, ebx
mov esi, ebp
add ecx, dword [esp + 0x70]
adc edi, dword [esp + 0x74]
adc esi, dword [esp + 0x78]
adc eax, edx
mov dword [esp + 0x7c], eax
mov edx, eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ecx
jmp 0x42b0d8
cmp eax, dword [esp + 0x40]
jae 0x42b6d0
lea esi, [esi]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
sub ebx, 1
mov ebp, dword [esp + 0x38]
mov dword [edi + edx*4], ebx
mov edi, dword [esp + 0x8c]
mov edx, dword [esp + 0x4c]
mov ebx, edi
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x50]
add edi, dword [esp + 0x28]
adc ebp, esi
adc edx, eax
adc ebx, ecx
mov esi, ebp
mov dword [esp + 0x58], ebp
mov eax, edx
mov ebp, edx
mov dword [esp + 0x78], edx
mov edx, ebx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], edi
cmp ebx, dword [esp + 0x54]
jbe 0x42b360
mov dword [esp + 0x28], edi
cmp ebx, dword [esp + 0x3c]
jb 0x42b260
jne 0x42b0a1
cmp dword [esp + 0x40], ebp
ja 0x42b260
mov edx, ebx
jne 0x42b0a1
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x48], ecx
ja 0x42b260
jne 0x42b0a1
mov ecx, dword [esp + 0x5c]
cmp dword [esp + 0x44], ecx
jbe 0x42b0a1
mov esi, esi
lea edi, [edi]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x38]
sub dword [eax + edi*4], 1
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
add edi, dword [esp + 0x5c]
adc esi, dword [esp + 0x58]
adc eax, ebp
adc edx, ebx
mov dword [esp + 0x28], edi
jmp 0x42b0a1
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x70], eax
je 0x42b854
or dword [esp + 0x90], 1
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
jmp 0x42ad86
movzx eax, word [esp + 0x6e]
and ax, 0xc00
cmp ax, 0x400
je 0x42b800
cmp ax, 0x800
je 0x42b760
test ax, ax
je 0x42b750
mov edx, 0x7ffe
mov eax, 0xffffffff
mov ebx, 0xffffffff
or dword [esp + 0x20], 0x28
mov edi, ebx
mov esi, ebx
mov word [esp + 0xac], ax
movzx eax, word [esp + 0xae]
and dx, 0x7fff
movzx ecx, byte [esp + 0x1c]
mov dword [esp + 0xa0], ebx
and ax, 0x8000
mov dword [esp + 0xa4], esi
or edx, eax
shl ecx, 7
mov dword [esp + 0xa8], edi
mov word [esp + 0xae], dx
movzx edx, dh
and edx, 0x7f
or edx, ecx
mov byte [esp + 0xaf], dl
mov ebp, dword [esp + 0xac]
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call dbg.__sfp_handle_exceptions
jmp 0x42ad03
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x28], edi
jne 0x42b0a1
cmp dword [esp + 0x4c], eax
jb 0x42b21f
jne 0x42b0a1
cmp dword [esp + 0x38], esi
jb 0x42b21f
jne 0x42b0a1
cmp dword [esp + 0x80], edi
ja 0x42b0a1
jmp 0x42b21f
mov esi, dword [esp + 0x1c]
test esi, esi
jne 0x42b622
mov esi, dword [esp + 0x28]
test esi, esi
je 0x42b8c0
bsr ecx, esi
xor ecx, 0x1f
lea esi, [ecx + 0x40]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x24]
lea edx, [esi - 0xc]
mov esi, edx
sar esi, 5
and edx, 0x1f
mov dword [esp + 0x1c], edx
jne 0x42b883
mov edx, esi
lea ebp, [esp + 0x80]
lea ecx, [esp + 0x70]
neg edx
lea edx, [ebp + edx*4]
mov ebx, dword [edx + 0xc]
mov dword [edx + esi*4 + 0xc], ebx
sub edx, 4
cmp ecx, edx
jne 0x42b3f5
lea edx, [esi - 1]
jmp 0x42ab2b
test esi, esi
jne 0x42b610
test eax, eax
je 0x42b902
bsr eax, eax
xor eax, 0x1f
add eax, 0x40
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
lea ebp, [eax - 0xc]
mov esi, ebp
sar esi, 5
and ebp, 0x1f
jne 0x42b8d4
mov eax, esi
lea edi, [esp + 0x70]
mov ebx, dword [esp + 0x24]
lea edx, [esp + 0x60]
neg eax
lea eax, [edi + eax*4]
mov ecx, dword [eax + 0xc]
mov dword [eax + esi*4 + 0xc], ecx
sub eax, 4
cmp edx, eax
jne 0x42b455
mov dword [esp + 0x24], ebx
lea eax, [esi - 1]
jmp 0x42abb8
mov edx, 1
mov edi, edx
sub edi, ecx
test ecx, ecx
jne 0x42b634
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x9c]
test bl, 7
je 0x42b4cd
movzx eax, word [esp + 0x6e]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
or dword [esp + 0x20], 0x20
and ax, 0xc00
cmp ax, 0x400
je 0x42bb64
cmp ax, 0x800
je 0x42bb45
test ax, ax
je 0x42ba66
shr edx, 0x14
lea ebx, [esp + 0x90]
mov esi, edi
mov eax, edi
xor edx, 1
mov dword [esp + 0x34], ebx
sar esi, 5
and eax, 0x1f
and edx, 1
xor edi, edi
mov dword [esp + 0x24], edx
mov edx, 3
mov ebx, edx
sub ebx, esi
mov dword [esp + 0x28], ebx
test eax, eax
jne 0x42b914
mov ebp, dword [esp + 0x34]
lea edx, [ebp + esi*4]
mov ecx, dword [edx + eax*4]
mov dword [ebp + eax*4], ecx
add eax, 1
cmp eax, ebx
jle 0x42b50e
mov edx, 4
sub edx, esi
mov eax, dword [esp + 0x34]
cmp edx, 4
je 0x42b53f
lea esi, [esi]
mov dword [eax + edx*4], 0
add edx, 1
cmp edx, 4
jne 0x42b530
xor eax, eax
test edi, edi
mov edx, dword [esp + 0x9c]
setne al
or eax, dword [esp + 0x90]
mov dword [esp + 0x90], eax
test al, 7
je 0x42b58d
movzx ecx, word [esp + 0x6e]
or dword [esp + 0x20], 0x20
and cx, 0xc00
cmp cx, 0x400
je 0x42bb37
cmp cx, 0x800
je 0x42baf0
test cx, cx
je 0x42baa7
and edx, 0x80000
je 0x42b991
mov ecx, dword [esp + 0x24]
or dword [esp + 0x20], 0x20
mov edx, 1
xor eax, eax
xor edi, edi
xor esi, esi
xor ebx, ebx
test ecx, ecx
je 0x42b2f2
or dword [esp + 0x20], 0x10
jmp 0x42b2f2
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
je 0x42b730
mov ebx, dword [esp + 0x80]
movzx ecx, byte [esp + 0x38]
mov eax, edx
or ax, 0x8000
mov byte [esp + 0x1c], cl
jmp 0x42ae8c
mov eax, dword [esp + 0x84]
je 0x42b701
sub dword [esp + 0x30], 1
jmp 0x42afac
bsr esi, esi
xor esi, 0x1f
lea eax, [esi + 0x20]
mov dword [esp + 0x20], eax
jmp 0x42b42d
bsr ecx, esi
xor ecx, 0x1f
lea esi, [ecx + 0x20]
mov dword [esp + 0x24], esi
jmp 0x42b3c9
cmp edi, 0x74
jle 0x42b81a
mov ebx, dword [esp + 0x90]
or ebx, dword [esp + 0x94]
or ebx, dword [esp + 0x98]
or ebx, dword [esp + 0x9c]
je 0x42ba00
movzx eax, word [esp + 0x6e]
or dword [esp + 0x20], 0x20
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
and ax, 0xc00
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 1
cmp ax, 0x400
je 0x42bbb4
cmp ax, 0x800
je 0x42bb72
test ax, ax
je 0x42bbc4
xor eax, eax
xor edi, edi
xor esi, esi
xor ebx, ebx
or dword [esp + 0x20], 0x10
xor edx, edx
jmp 0x42b2f2
jne 0x42b0a1
mov edi, dword [esp + 0x48]
cmp esi, edi
jb 0x42b1c0
mov ebp, dword [esp + 0x44]
cmp dword [esp + 0x28], ebp
jae 0x42b6f4
cmp esi, edi
je 0x42b1c0
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
jmp 0x42b0a1
mov ecx, dword [esp + 0x78]
cmp ecx, ebp
ja 0x42af5a
jne 0x42b5fd
mov edi, dword [esp + 0x74]
mov dword [esp + 0x24], edi
cmp edi, eax
jbe 0x42bbfc
mov edi, dword [esp + 0x70]
jmp 0x42af6d
mov ecx, dword [esp + 0x78]
cmp ecx, edi
jbe 0x42ba0b
mov esi, dword [esp + 0x74]
mov edi, ecx
jmp 0x42ae7b
mov edx, 0x7fff
xor ebx, ebx
jmp 0x42b2e9
mov edi, dword [esp + 0x3c]
mov edx, edi
mov eax, edi
neg edi
neg edx
neg eax
mov ebx, edi
add dx, 0x7fff
jmp 0x42b2e9
mov ebp, dword [esp + 0x3c]
test ebp, ebp
jne 0x42ade1
mov ebx, dword [esp + 0x98]
add eax, 8
adc esi, 0
adc ebx, 0
adc edx, 0
mov dword [esp + 0x98], ebx
mov ebx, esi
mov dword [esp + 0x9c], edx
jmp 0x42ade1
mov edi, eax
and edi, 0xf
cmp edi, 4
je 0x42ade1
mov ebx, dword [esp + 0x98]
add eax, 4
adc esi, 0
adc ebx, 0
adc edx, 0
mov dword [esp + 0x98], ebx
mov ebx, esi
mov dword [esp + 0x9c], edx
jmp 0x42ade1
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x42ade1
jmp 0x42b78c
mov edi, dword [esp + 0x3c]
cmp edi, 1
sbb edx, edx
add dx, 0x7fff
cmp edi, 1
sbb eax, eax
mov ebx, eax
jmp 0x42b2e9
mov eax, edi
and eax, 0x1f
sar edi, 5
mov ecx, edi
je 0x42bc1f
lea edi, [esp + 0x90]
mov dword [esp + 0x34], edi
mov edx, edi
lea ebx, [edi + ecx*4]
xor edi, edi
or edi, dword [edx]
add edx, 4
cmp edx, ebx
jne 0x42b83c
mov esi, ecx
mov dword [esp + 0x24], 1
jmp 0x42b4f1
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x74], eax
jne 0x42b29f
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x78], eax
jne 0x42b29f
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x7c], eax
jne 0x42b29f
jmp 0x42b2a7
mov ecx, dword [esp + 0x1c]
mov edx, 0x20
sub edx, ecx
mov dword [esp + 0x28], edx
cmp esi, 3
jne 0x42aace
mov edx, dword [esp + 0x2c]
lea ebp, [esp + 0x80]
shl edx, cl
mov dword [esp + 0x8c], edx
mov edx, 2
jmp 0x42ab20
bsr ecx, dword [esp + 0x2c]
xor ecx, 0x1f
lea esi, [ecx + 0x60]
mov dword [esp + 0x24], esi
jmp 0x42b3c9
mov eax, 0x20
sub eax, ebp
mov dword [esp + 0x30], eax
cmp esi, 3
jne 0x42ab81
mov ecx, ebp
mov eax, 2
mov ebx, dword [esp + 0x24]
shl edi, cl
mov dword [esp + 0x7c], edi
lea edi, [esp + 0x70]
jmp 0x42abc1
bsr ebp, edi
xor ebp, 0x1f
lea eax, [ebp + 0x60]
mov dword [esp + 0x20], eax
jmp 0x42b42d
mov edx, 0x20
mov ebp, dword [esp + 0x28]
mov ebx, edx
mov edx, dword [esp + ecx*4 + 0x90]
sub ebx, eax
mov ecx, ebx
mov dword [esp + 0x2c], ebx
shl edx, cl
or edi, edx
test ebp, ebp
je 0x42ba87
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x30], edi
mov edx, ecx
lea ebp, [ecx + ebx*4]
mov ebx, dword [edx + esi*4]
mov ecx, eax
mov edi, dword [edx + esi*4 + 4]
add edx, 4
shr ebx, cl
movzx ecx, byte [esp + 0x2c]
shl edi, cl
or ebx, edi
mov dword [edx - 4], ebx
cmp edx, ebp
jne 0x42b94b
mov edx, 4
mov ecx, eax
mov edi, dword [esp + 0x30]
sub edx, esi
mov esi, dword [esp + 0x9c]
shr esi, cl
mov eax, esi
mov esi, dword [esp + 0x28]
mov dword [esp + esi*4 + 0x90], eax
jmp 0x42b523
mov eax, dword [esp + 0x34]
lea ebx, [esp + 0x9c]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
add eax, 4
shr edx, 3
shl ecx, 0x1d
or edx, ecx
mov dword [eax - 4], edx
cmp ebx, eax
jne 0x42b99c
mov eax, dword [esp + 0x9c]
mov ebp, dword [esp + 0x24]
xor edx, edx
mov ebx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
shr eax, 3
test ebp, ebp
je 0x42aca6
test byte [esp + 0x20], 0x20
jne 0x42b5b7
test byte [esp + 0x6e], 0x10
jne 0x42aca6
jmp 0x42b5b7
xor edi, edi
xor esi, esi
xor eax, eax
jmp 0x42b6be
mov esi, dword [esp + 0x84]
jne 0x42b5d5
mov ecx, dword [esp + 0x74]
cmp ecx, esi
ja 0x42bc18
mov ebx, dword [esp + 0x80]
jne 0x42b5dc
cmp dword [esp + 0x70], ebx
jbe 0x42b5dc
jmp 0x42ae7b
movzx eax, word [esp + 0x9c]
mov ebx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
or ax, 0x8000
jmp 0x42ae8c
mov eax, ebx
and eax, 0xf
cmp eax, 4
je 0x42b4cd
mov eax, ebp
add ebx, 4
adc eax, 0
adc esi, 0
adc edx, 0
jmp 0x42b4cd
mov esi, dword [esp + 0x9c]
mov ecx, eax
mov edx, 1
mov eax, dword [esp + 0x34]
shr esi, cl
mov dword [esp + 0x90], esi
jmp 0x42b530
mov ecx, eax
and ecx, 0xf
cmp ecx, 4
je 0x42b58d
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0x94]
add eax, 4
adc ebx, 0
adc ecx, 0
adc edx, 0
mov dword [esp + 0x9c], edx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], eax
jmp 0x42b58d
mov esi, dword [esp + 0x3c]
test esi, esi
jne 0x42b58d
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0x94]
add eax, 8
adc ebx, 0
adc ecx, 0
adc edx, 0
mov dword [esp + 0x9c], edx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], eax
jmp 0x42b58d
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x42b58d
jmp 0x42bafc
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x42b4cd
mov eax, ebp
add ebx, 8
adc eax, 0
adc esi, 0
adc edx, 0
jmp 0x42b4cd
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x42b4cd
jmp 0x42bb51
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x42b6b6
mov edi, eax
mov esi, eax
add edx, 8
adc esi, 0
adc edi, 0
adc eax, 0
mov ebx, edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], edi
shr ebx, 3
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], edx
jmp 0x42b6be
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x42b6b6
xor eax, eax
jmp 0x42bb7e
xor eax, eax
mov ebx, edx
mov edi, eax
mov esi, eax
add ebx, 4
adc esi, 0
adc edi, 0
adc eax, 0
mov dword [esp + 0x90], ebx
shr ebx, 3
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], esi
jmp 0x42b6be
jne 0x42b5fd
mov edi, dword [esp + 0x70]
cmp edi, dword [esp + 0x80]
jb 0x42b5fd
jmp 0x42af6d
mov esi, ecx
jmp 0x42ae7b
lea ebx, [esp + 0x90]
xor esi, esi
mov dword [esp + 0x24], 1
xor edi, edi
mov dword [esp + 0x34], ebx
jmp 0x42b4f1