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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
mov edi, dword [esp + 0xe8]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0xf4]
mov edx, dword [esp + 0xec]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0xf8]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xfc]
fnstcw word [esp + 0x5e]
mov ecx, edx
movzx ebp, dx
mov dword [esp + 0x90], eax
shr ecx, 0x10
mov dword [esp + 0x94], ebx
mov dword [esp + 0x1c], ecx
mov ecx, edx
shr ecx, 0x1f
mov dword [esp + 0x98], edi
mov byte [esp + 0x20], cl
movzx ecx, cl
mov dword [esp + 0x28], ecx
movzx ecx, word [esp + 0x1c]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], ebp
and cx, 0x7fff
je 0x42c7f0
cmp cx, 0x7fff
je 0x42c893
mov edx, edi
shl ebp, 3
mov dword [esp + 0x24], 0
movzx ecx, cx
shr edx, 0x1d
or ebp, 0x80000
shl edi, 3
mov dword [esp + 0x1c], 0
or ebp, edx
mov edx, ebx
shl ebx, 3
shr edx, 0x1d
mov dword [esp + 0x6c], ebp
or edi, edx
mov edx, eax
shl eax, 3
shr edx, 0x1d
mov dword [esp + 0x68], edi
lea edi, [ecx - 0x3fff]
or ebx, edx
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x64], ebx
mov edx, dword [esp + 0x10]
mov ebp, esi
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x9c], esi
shr ebp, 0x10
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x98], edx
mov dword [esp + 0x78], edx
mov edx, ebp
mov ebp, esi
shr ebp, 0x1f
mov dword [esp + 0x90], ebx
mov dword [esp + 0x70], ebx
mov ebx, ebp
mov dword [esp + 0x94], ecx
movzx ebx, bl
mov dword [esp + 0x74], ecx
movzx ecx, si
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x2c], ebx
and dx, 0x7fff
je 0x42c8c0
cmp dx, 0x7fff
je 0x42c685
mov esi, dword [esp + 0x10]
shl ecx, 3
mov ebx, dword [esp + 0x10]
movzx edx, dx
or ecx, 0x80000
lea edi, [edx + edi - 0x3fff]
shr esi, 0x1d
shl ebx, 3
or ecx, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x7c], ecx
mov ecx, esi
shr ecx, 0x1d
or ecx, ebx
mov dword [esp + 0x78], ecx
mov ecx, esi
mov esi, dword [esp + 0x18]
shl ecx, 3
mov ebx, esi
shl esi, 3
shr ebx, 0x1d
mov dword [esp + 0x70], esi
or ecx, ebx
mov dword [esp + 0x74], ecx
xor ecx, ecx
movzx ebx, byte [esp + 0x20]
xor ebx, ebp
movzx esi, bl
mov byte [esp + 0x10], bl
mov dword [esp + 0x14], esi
lea esi, [edi + 1]
mov dword [esp + 0x18], esi
cmp eax, 0xf
ja case.0x42c67e.0
jmp dword [eax*4 + 0x46f528]
mov edx, dword [esp + 0x14]
or edx, dword [esp + 0x18]
add edi, 0x7fff
or edx, dword [esp + 0x10]
or edx, ecx
jne 0x42c9d1
or eax, 2
mov ecx, 2
jmp 0x42c65c
movzx eax, byte [esp + 0x20]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x8c], eax
cmp ecx, 2
je 0x42c7d4
cmp ecx, 3
je 0x42d510
cmp ecx, 1
jne 0x42cd3b
xor eax, eax
xor edx, edx
xor edi, edi
xor esi, esi
xor ebx, ebx
mov word [esp + 0x9c], dx
movzx edx, word [esp + 0x9e]
movzx ecx, byte [esp + 0x10]
mov dword [esp + 0x90], ebx
and dx, 0x8000
mov dword [esp + 0x94], esi
or eax, edx
shl ecx, 7
mov dword [esp + 0x98], edi
mov word [esp + 0x9e], ax
movzx eax, ah
and eax, 0x7f
or eax, ecx
mov byte [esp + 0x9f], al
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x9c]
test eax, eax
jne 0x42cea8
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
mov eax, ebp
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x8c], eax
cmp ecx, 2
jne 0x42c6fa
mov eax, 0x7fff
xor edx, edx
xor edi, edi
xor esi, esi
xor ebx, ebx
jmp 0x42c716
mov ecx, eax
or ecx, ebx
or ecx, edi
or ecx, ebp
je 0x42c9b5
test dx, dx
je 0x42cf30
bsr eax, ebp
xor ebx, ebx
xor eax, 0x1f
lea ebp, [eax - 0xc]
mov dword [esp + 0x1c], eax
mov eax, 0x20
sub eax, ebp
mov dword [esp + 0x24], eax
mov eax, ebx
mov dword [esp + 0x2c], esi
lea edi, [esp + 0x60]
neg eax
lea eax, [edi + eax*4 + 0xc]
mov edx, dword [eax]
mov ecx, ebp
mov esi, dword [eax - 4]
shl edx, cl
movzx ecx, byte [esp + 0x24]
shr esi, cl
or edx, esi
mov dword [eax + ebx*4], edx
sub eax, 4
cmp edi, eax
jne 0x42c831
mov edx, dword [esp + 0x60]
mov ecx, ebp
mov esi, dword [esp + 0x2c]
lea eax, [ebx - 1]
shl edx, cl
mov dword [esp + ebx*4 + 0x60], edx
jmp 0x42c86c
mov dword [edi + eax*4], 0
sub eax, 1
cmp eax, 0xffffffff
jne 0x42c862
mov ecx, 0xffffc011
xor eax, eax
mov dword [esp + 0x24], 0
mov edi, ecx
sub edi, dword [esp + 0x1c]
mov dword [esp + 0x1c], 2
jmp 0x42c5a7
or eax, ebx
or eax, edi
or eax, ebp
jne 0x42c992
mov eax, 8
mov edi, 0x7fff
mov dword [esp + 0x24], 2
mov dword [esp + 0x1c], 0
jmp 0x42c5a7
mov edx, dword [esp + 0x14]
or edx, dword [esp + 0x18]
or edx, dword [esp + 0x10]
or edx, ecx
je 0x42c985
test si, si
je 0x42cec0
bsr esi, ecx
mov edx, 0x20
xor esi, 0x1f
mov dword [esp + 0x14], esi
sub esi, 0xc
sub edx, esi
mov dword [esp + 0x10], esi
xor esi, esi
mov dword [esp + 0x30], edx
mov edx, esi
mov dword [esp + 0x18], eax
lea ebx, [esp + 0x70]
mov dword [esp + 0x34], edi
neg edx
lea edx, [ebx + edx*4 + 0xc]
mov eax, dword [edx]
movzx ecx, byte [esp + 0x10]
mov edi, dword [edx - 4]
shl eax, cl
movzx ecx, byte [esp + 0x30]
shr edi, cl
or eax, edi
mov dword [edx + esi*4], eax
sub edx, 4
cmp edx, ebx
jne 0x42c90f
lea ecx, [esi - 1]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
movzx ecx, byte [esp + 0x10]
mov edi, dword [esp + 0x34]
shl edx, cl
mov dword [esp + esi*4 + 0x70], edx
cmp dword [esp + 0x18], 0xffffffff
mov edx, dword [esp + 0x18]
je 0x42c96f
mov esi, esi
lea edi, [edi]
mov dword [ebx + edx*4], 0
sub edx, 1
cmp edx, 0xffffffff
jne 0x42c960
sub edi, dword [esp + 0x14]
or dword [esp + 0x1c], 2
xor ecx, ecx
lea edi, [edi - 0x3fef]
jmp 0x42c65c
or eax, 1
mov ecx, 1
jmp 0x42c65c
movsx edx, dx
mov eax, 0xc
mov edi, 0x7fff
mov dword [esp + 0x24], 3
not edx
shr edx, 0x1f
mov dword [esp + 0x1c], edx
jmp 0x42c5a7
mov eax, 4
xor edi, edi
mov dword [esp + 0x24], 1
mov dword [esp + 0x1c], 0
jmp 0x42c5a7
mov edx, dword [esp + 0x1c]
or eax, 3
mov ecx, 3
mov ebx, edx
or edx, 1
test si, si
cmovns ebx, edx
mov dword [esp + 0x1c], ebx
jmp 0x42c65c
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x60]
cmp edx, eax
jbe 0x42d0f0
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
movzx eax, byte [esp + 0x20]
or dx, 0x8000
mov byte [esp + 0x10], al
mov eax, 0x7fff
jmp 0x42c716
or dword [esp + 0x1c], 1
mov edx, 0xffff8000
xor edi, edi
xor esi, esi
mov byte [esp + 0x10], 1
xor ebx, ebx
jmp 0x42ca1b
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x4c], edi
xor edi, edi
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x70]
mul dword [esp + 0x70]
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x90], eax
mov eax, esi
mul ecx
mov ebp, edx
mov edx, dword [esp + 0x64]
mov esi, eax
mov eax, edx
mul ebx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov eax, edx
mul ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov eax, ecx
mov ecx, dword [esp + 0x24]
mul dword [esp + 0x78]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mul ebx
xor ebx, ebx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x2c]
add esi, dword [esp + 0x20]
adc ebp, 0
adc ebx, 0
mov dword [esp + 0x20], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x20]
add ebx, esi
adc edx, ebp
adc ecx, edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x94], ebx
mov ebp, dword [esp + 0x34]
xor ebx, ebx
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x24], 0
add esi, edx
adc ebp, ecx
adc ebx, 0
mov edx, dword [esp + 0x3c]
mov ecx, esi
xor esi, esi
add edi, ecx
adc edx, ebp
adc esi, ebx
mov ecx, dword [esp + 0x40]
mov ebp, edi
mov ebx, esi
mov esi, dword [esp + 0x6c]
mov edi, ecx
mov ecx, eax
add ecx, ebp
adc edi, edx
adc ebx, dword [esp + 0x24]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x2c], ecx
mov eax, ebx
mov dword [esp + 0x98], ecx
xor ecx, ecx
mul dword [esp + 0x7c]
mov ebp, edx
mov ebx, eax
mov eax, esi
mul dword [esp + 0x70]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x64]
mov esi, eax
mov eax, edx
mul dword [esp + 0x78]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
mul dword [esp + 0x74]
mov dword [esp + 0x3c], edx
xor edx, edx
add ebx, edi
adc ebp, dword [esp + 0x24]
adc edx, 0
mov edi, dword [esp + 0x30]
add esi, ebx
adc edi, ebp
adc edx, ecx
mov ebx, edi
mov edi, edx
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
add ebp, esi
adc edx, ebx
adc ecx, edi
mov esi, dword [esp + 0x3c]
xor ebx, ebx
add eax, ebp
adc esi, edx
adc ebx, ecx
mov edi, esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x24], eax
mov dword [esp + 0x9c], eax
mov eax, esi
mul dword [esp + 0x78]
mov ebp, edx
mov edx, dword [esp + 0x64]
mov esi, eax
mov eax, edx
mul dword [esp + 0x7c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x30], eax
mov eax, edx
mul dword [esp + 0x74]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, edx
mul dword [esp + 0x7c]
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
mul dword [esp + 0x78]
mov dword [esp + 0x48], edx
xor edx, edx
add esi, edi
adc ebp, ebx
adc edx, 0
xor ecx, ecx
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
add ebx, esi
adc edi, ebp
adc edx, ecx
mov ecx, dword [esp + 0x3c]
mov ebp, edx
mov esi, dword [esp + 0x38]
xor edx, edx
add esi, ebx
adc ecx, edi
adc edx, ebp
xor ebx, ebx
mov dword [esp + 0xa0], esi
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x4c]
add esi, ecx
adc ebp, edx
adc ebx, 0
xor ecx, ecx
mov edx, dword [esp + 0x48]
add eax, esi
adc edx, ebp
adc ecx, ebx
mov ebx, edx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x6c]
lea esi, [esp + 0xa0]
mul dword [esp + 0x7c]
add eax, ebx
adc edx, ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xac], edx
mov ebx, dword [esp + 0x28]
mov edx, eax
or ebx, dword [esp + 0x20]
or ebx, dword [esp + 0x2c]
mov ecx, eax
shl edx, 0xd
or ebx, edx
lea edx, [esp + 0x90]
mov eax, dword [edx + 0x10]
shr ecx, 0x13
add edx, 4
shl eax, 0xd
or eax, ecx
mov dword [edx - 4], eax
cmp edx, esi
je 0x42ccb0
mov ecx, dword [edx + 0xc]
jmp 0x42cc95
xor eax, eax
mov edx, dword [esp + 0x9c]
test ebx, ebx
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0x94]
setne al
or eax, dword [esp + 0x90]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], eax
test edx, 0x100000
je 0x42d0e0
mov esi, ecx
mov edi, ebx
shl ebx, 0x1f
shl esi, 0x1f
shr edi, 1
or esi, edi
shr ecx, 1
mov dword [esp + 0x84], esi
mov esi, edx
shr edx, 1
mov dword [esp + 0x8c], edx
mov edx, eax
shl esi, 0x1f
and eax, 1
shr edx, 1
or ecx, esi
or ebx, edx
mov dword [esp + 0x88], ecx
or ebx, eax
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x18]
lea ebp, [eax + 0x3fff]
test ebp, ebp
jle 0x42cf90
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x8c]
mov ebx, esi
test al, 7
je 0x42cd96
movzx ecx, word [esp + 0x5e]
or dword [esp + 0x1c], 0x20
and cx, 0xc00
cmp cx, 0x400
je 0x42d2d0
cmp cx, 0x800
je 0x42d260
test cx, cx
je 0x42d220
test edx, 0x100000
je 0x42cdb5
and edx, 0xffefffff
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x8c], edx
add ebp, 0x4000
mov edi, dword [esp + 0x88]
shr eax, 3
shl ebx, 0x1d
mov edx, dword [esp + 0x8c]
or ebx, eax
shr esi, 3
mov eax, edi
shr edi, 3
mov dword [esp + 0x80], ebx
shl eax, 0x1d
or esi, eax
mov eax, edx
shr edx, 3
shl eax, 0x1d
mov dword [esp + 0x84], esi
or edi, eax
mov dword [esp + 0x88], edi
cmp ebp, 0x7ffe
jg 0x42ce10
mov eax, ebp
and ax, 0x7fff
jmp 0x42c716
movzx edx, word [esp + 0x5e]
and dx, 0xc00
cmp dx, 0x400
je 0x42d2b0
cmp dx, 0x800
je 0x42d294
test dx, dx
je 0x42d210
mov eax, 0x7ffe
mov edx, 0xffffffff
mov ebx, 0xffffffff
or dword [esp + 0x1c], 0x28
mov edi, ebx
mov esi, ebx
and ax, 0x7fff
mov word [esp + 0x9c], dx
movzx ecx, byte [esp + 0x10]
mov edx, eax
movzx eax, word [esp + 0x9e]
mov dword [esp + 0x90], ebx
shl ecx, 7
mov dword [esp + 0x94], esi
and ax, 0x8000
mov dword [esp + 0x98], edi
or eax, edx
mov word [esp + 0x9e], ax
movzx eax, ah
and eax, 0x7f
or eax, ecx
mov byte [esp + 0x9f], al
mov ebp, dword [esp + 0x9c]
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call dbg.__sfp_handle_exceptions
jmp 0x42c774
mov esi, dword [esp + 0x10]
test esi, esi
jne 0x42d142
mov esi, dword [esp + 0x14]
test esi, esi
je 0x42d350
bsr ecx, esi
xor ecx, 0x1f
lea esi, [ecx + 0x40]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x14]
lea edx, [esi - 0xc]
mov esi, edx
sar esi, 5
and edx, 0x1f
mov dword [esp + 0x10], edx
jne 0x42d318
mov edx, esi
mov dword [esp + 0x10], eax
lea ebx, [esp + 0x70]
lea ecx, [esp + 0x60]
neg edx
lea edx, [ebx + edx*4]
mov eax, dword [edx + 0xc]
mov dword [edx + esi*4 + 0xc], eax
sub edx, 4
cmp edx, ecx
jne 0x42cf11
sub esi, 1
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], esi
jmp 0x42c94c
test edi, edi
jne 0x42d130
test ebx, ebx
je 0x42d390
bsr ebx, ebx
xor ebx, 0x1f
lea edi, [ebx + 0x40]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x1c]
lea ebp, [edi - 0xc]
mov ebx, ebp
sar ebx, 5
and ebp, 0x1f
jne 0x42d364
mov eax, ebx
lea edi, [esp + 0x60]
lea edx, [esp + 0x50]
neg eax
lea eax, [edi + eax*4]
mov ecx, dword [eax + 0xc]
mov dword [eax + ebx*4 + 0xc], ecx
sub eax, 4
cmp edx, eax
jne 0x42cf71
lea eax, [ebx - 1]
jmp 0x42c86c
mov ecx, 1
mov edx, ecx
sub edx, ebp
test ebp, ebp
jne 0x42d154
mov ebx, dword [esp + 0x80]
mov ecx, dword [esp + 0x8c]
test bl, 7
je 0x42cfed
movzx eax, word [esp + 0x5e]
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x88]
or dword [esp + 0x1c], 0x20
and ax, 0xc00
cmp ax, 0x400
je 0x42d6bb
cmp ax, 0x800
je 0x42d69c
test ax, ax
je 0x42d537
shr ecx, 0x14
mov dword [esp + 0x18], 0
mov esi, edx
mov eax, edx
xor ecx, 1
sar esi, 5
and eax, 0x1f
lea edi, [esp + 0x80]
and ecx, 1
mov dword [esp + 0x20], ecx
mov edx, 3
mov ebx, edx
sub ebx, esi
mov dword [esp + 0x24], ebx
test eax, eax
jne 0x42d3a2
lea edx, [edi + esi*4]
mov ecx, dword [edx + eax*4]
mov dword [edi + eax*4], ecx
add eax, 1
cmp eax, ebx
jle 0x42d02b
mov edx, 4
sub edx, esi
jmp 0x42d04b
mov dword [edi + edx*4], 0
add edx, 1
cmp edx, 4
jne 0x42d041
mov esi, dword [esp + 0x18]
xor eax, eax
mov edx, dword [esp + 0x8c]
test esi, esi
setne al
or eax, dword [esp + 0x80]
mov dword [esp + 0x80], eax
test al, 7
je 0x42d0a2
movzx ecx, word [esp + 0x5e]
or dword [esp + 0x1c], 0x20
and cx, 0xc00
cmp cx, 0x400
je 0x42d5d7
cmp cx, 0x800
je 0x42d590
test cx, cx
je 0x42d653
and edx, 0x80000
je 0x42d420
mov ebp, dword [esp + 0x20]
or dword [esp + 0x1c], 0x20
mov eax, 1
xor edx, edx
xor edi, edi
xor esi, esi
xor ebx, ebx
test ebp, ebp
je 0x42ce51
or dword [esp + 0x1c], 0x10
jmp 0x42ce51
mov dword [esp + 0x18], edi
jmp 0x42cd3b
mov edi, dword [esp + 0x78]
je 0x42d1f0
mov esi, dword [esp + 0x74]
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ecx
cmp ecx, ebx
je 0x42d4a0
mov edx, eax
mov eax, ebp
mov ebx, dword [esp + 0x14]
or dx, 0x8000
mov byte [esp + 0x10], al
jmp 0x42ca1b
bsr edi, edi
xor edi, 0x1f
add edi, 0x20
mov dword [esp + 0x1c], edi
jmp 0x42cf4d
bsr ecx, esi
xor ecx, 0x1f
lea esi, [ecx + 0x20]
mov dword [esp + 0x14], esi
jmp 0x42cee5
cmp edx, 0x74
jle 0x42d2de
mov ebx, dword [esp + 0x80]
or ebx, dword [esp + 0x84]
or ebx, dword [esp + 0x88]
or ebx, dword [esp + 0x8c]
je 0x42d490
movzx eax, word [esp + 0x5e]
or dword [esp + 0x1c], 0x20
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
and ax, 0xc00
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 1
cmp ax, 0x400
je 0x42d627
cmp ax, 0x800
je 0x42d5e5
test ax, ax
je 0x42d558
xor edx, edx
xor edi, edi
xor esi, esi
xor ebx, ebx
or dword [esp + 0x1c], 0x10
xor eax, eax
jmp 0x42ce51
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], ecx
cmp ecx, edi
jbe 0x42d4c5
mov esi, dword [esp + 0x64]
mov edi, ecx
jmp 0x42ca0d
mov eax, 0x7fff
xor ebx, ebx
jmp 0x42ce48
mov ecx, eax
and ecx, 0xf
cmp ecx, 4
je 0x42cd96
mov ecx, dword [esp + 0x88]
add eax, 4
adc esi, 0
adc ecx, 0
adc edx, 0
mov dword [esp + 0x8c], edx
mov ebx, esi
mov dword [esp + 0x88], ecx
jmp 0x42cd96
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x42cd96
mov ecx, dword [esp + 0x88]
add eax, 8
adc esi, 0
adc ecx, 0
adc edx, 0
mov dword [esp + 0x8c], edx
mov ebx, esi
mov dword [esp + 0x88], ecx
jmp 0x42cd96
mov edi, dword [esp + 0x14]
mov eax, edi
mov edx, edi
neg edi
neg eax
neg edx
mov ebx, edi
add ax, 0x7fff
jmp 0x42ce48
mov edi, dword [esp + 0x14]
cmp edi, 1
sbb eax, eax
add ax, 0x7fff
cmp edi, 1
sbb edx, edx
mov ebx, edx
jmp 0x42ce48
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x42cd96
jmp 0x42d26c
mov eax, edx
and eax, 0x1f
sar edx, 5
mov ebp, edx
je 0x42d6d2
lea edi, [esp + 0x80]
xor ebx, ebx
mov edx, edi
lea ecx, [edi + ebp*4]
or ebx, dword [edx]
add edx, 4
cmp edx, ecx
jne 0x42d2fc
mov dword [esp + 0x18], ebx
mov esi, ebp
mov dword [esp + 0x20], 1
jmp 0x42d013
mov ebx, dword [esp + 0x10]
mov edx, 0x20
sub edx, ebx
mov dword [esp + 0x30], edx
cmp esi, 3
jne 0x42c8fb
mov edx, dword [esp + 0x18]
mov ecx, ebx
lea ebx, [esp + 0x70]
shl edx, cl
mov dword [esp + 0x7c], edx
mov edx, 2
jmp 0x42c960
bsr ecx, dword [esp + 0x18]
xor ecx, 0x1f
lea esi, [ecx + 0x60]
mov dword [esp + 0x14], esi
jmp 0x42cee5
mov edx, 0x20
sub edx, ebp
mov dword [esp + 0x24], edx
cmp ebx, 3
jne 0x42c821
mov ecx, ebp
lea edi, [esp + 0x60]
shl eax, cl
mov dword [esp + 0x6c], eax
mov eax, 2
jmp 0x42c862
bsr ebp, eax
xor ebp, 0x1f
lea edi, [ebp + 0x60]
mov dword [esp + 0x1c], edi
jmp 0x42cf4d
mov edx, 0x20
mov ebx, edx
mov edx, dword [esp + ebp*4 + 0x80]
mov ebp, dword [esp + 0x24]
sub ebx, eax
mov ecx, ebx
mov dword [esp + 0x28], ebx
shl edx, cl
or dword [esp + 0x18], edx
test ebp, ebp
je 0x42d637
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x2c], edi
mov edx, edi
lea ebp, [edi + 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 + 0x28]
shl edi, cl
or ebx, edi
mov dword [edx - 4], ebx
cmp ebp, edx
jne 0x42d3d7
mov edx, 4
mov ecx, eax
mov edi, dword [esp + 0x2c]
sub edx, esi
mov esi, dword [esp + 0x8c]
shr esi, cl
mov eax, esi
mov esi, dword [esp + 0x24]
mov dword [esp + esi*4 + 0x80], eax
jmp 0x42d04b
mov eax, edi
lea ebx, [esp + 0x8c]
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 0x42d429
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x20]
xor eax, eax
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x88]
shr edx, 3
test ecx, ecx
je 0x42c716
test byte [esp + 0x1c], 0x20
jne 0x42d6f0
test byte [esp + 0x5e], 0x10
jne 0x42c716
jmp 0x42d0cc
xor edi, edi
xor esi, esi
xor edx, edx
jmp 0x42d1de
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x64], ecx
jne 0x42d112
mov esi, dword [esp + 0x68]
mov ecx, esi
cmp edx, eax
jne 0x42d4bc
cmp esi, edi
je 0x42d505
mov esi, dword [esp + 0x10]
jmp 0x42d112
mov esi, dword [esp + 0x74]
mov dword [esp + 0x10], esi
jne 0x42d102
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x10], ecx
cmp ecx, esi
ja 0x42d6c9
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ecx
jne 0x42d112
cmp ecx, ebx
jb 0x42ca0d
jne 0x42d112
mov eax, dword [esp + 0x18]
mov ecx, eax
mov esi, dword [esp + 0x10]
mov edi, ecx
jmp 0x42ca0d
movzx edx, word [esp + 0x8c]
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x88]
or dx, 0x8000
jmp 0x42ca1b
mov eax, ebx
and eax, 0xf
cmp eax, 4
je 0x42cfed
mov eax, edi
add ebx, 4
adc eax, 0
adc esi, 0
adc ecx, 0
jmp 0x42cfed
xor edx, edx
mov ebx, ecx
mov edi, edx
mov esi, edx
add ebx, 4
adc esi, 0
adc edi, 0
adc edx, 0
mov dword [esp + 0x80], ebx
shr ebx, 3
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], esi
jmp 0x42d1de
mov ebx, dword [esp + 0x14]
test ebx, ebx
jne 0x42d0a2
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
add eax, 8
adc ebx, 0
adc ecx, 0
adc edx, 0
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], eax
jmp 0x42d0a2
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x42d0a2
jmp 0x42d59c
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x42d1d6
mov edi, edx
mov esi, edx
add ecx, 8
adc esi, 0
adc edi, 0
adc edx, 0
mov ebx, ecx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], edi
shr ebx, 3
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], ecx
jmp 0x42d1de
mov edx, dword [esp + 0x14]
test edx, edx
je 0x42d1d6
xor edx, edx
jmp 0x42d5f1
mov esi, dword [esp + 0x8c]
mov ecx, eax
mov edx, 1
shr esi, cl
mov dword [esp + 0x80], esi
jmp 0x42d041
mov ecx, eax
and ecx, 0xf
cmp ecx, 4
je 0x42d0a2
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
add eax, 4
adc ebx, 0
adc ecx, 0
adc edx, 0
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], eax
jmp 0x42d0a2
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x42cfed
mov eax, edi
add ebx, 8
adc eax, 0
adc esi, 0
adc ecx, 0
jmp 0x42cfed
mov eax, dword [esp + 0x14]
test eax, eax
je 0x42cfed
jmp 0x42d6a8
mov esi, dword [esp + 0x10]
jmp 0x42ca0d
xor esi, esi
mov dword [esp + 0x20], 1
lea edi, [esp + 0x80]
mov dword [esp + 0x18], 0
jmp 0x42d013
xor eax, eax
jmp 0x42d0cc