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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x110
movzx eax, word [ebp + 0x10]
test eax, eax
mov dword [esp + 0x84], eax
je 0x4b45dc
mov eax, dword [ecx]
mov eax, dword [eax]
test byte [eax + 0x4c], 0x40
jne 0x4b525c
movzx edi, word [edx]
xor eax, eax
cmp edi, 0x3f
mov esi, edi
mov dword [esp + 0x40], edi
ja 0x4b525e
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x40]
mov esi, 0xffffffff
mov eax, 0xffffffff
xor ebx, ebx
mov edi, 0x183
shl esi, cl
test cl, 0x20
cmove ebx, esi
cmove esi, eax
movzx eax, word [ebp + 0xc]
mov dword [esp + 0x70], eax
and eax, 0x800
cmp eax, 1
sbb edi, 0
test ecx, ecx
mov dword [esp + 0x88], edi
je 0x4b5205
mov eax, dword [esp + 0x4c]
not esi
not ebx
mov dword [esp + 0x34], edx
xor edi, edi
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x58], esi
mov dword [esp + 0x44], ebx
lea esi, [eax + 0x48]
lea eax, [eax + 0x1e0]
mov dword [esp + 0x9c], eax
lea eax, [edx + 4]
mov dword [esp + 0x98], esi
xor esi, esi
xor edx, edx
mov dword [esp + 0x94], eax
mov al, 1
mov dword [esp + 0x18], eax
nop word cs:[eax + eax]
nop dword [eax]
test edi, edi
mov dword [esp + 0x38], edi
je 0x4b46d2
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x68]
or eax, dword [edi + 8]
or ecx, dword [edi + 0xc]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x84]
mov eax, dword [ebp + 0x14]
jae 0x4b46fd
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x38]
test dword [esp + 0x70], 0x800
mov eax, dword [eax + 0x18]
mov eax, dword [eax + edi*4]
jne 0x4b5020
test byte [eax + 0x25], 4
mov dword [esp + 0x14], eax
jne 0x4b51cd
movzx eax, word [ebp + 0xc]
mov dword [esp + 0xc], esi
test al, al
jns 0x4b4721
mov eax, dword [esp + 0x14]
mov word [eax + 0x1e], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x6c]
xor ebx, ebx
movzx ecx, byte [ecx + 0x10]
mov eax, dword [eax + 4]
not esi
mov dword [esp + 0x1c], esi
lea ecx, [ecx + ecx*8]
mov edi, dword [eax + ecx*8 + 0x30]
mov ecx, dword [esp + 0x68]
not ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], ecx
jmp 0x4b476f
mov edx, dword [esp + 8]
inc ebx
cmp ebx, dword [esp + 0x40]
je 0x4b4a80
xor edi, edi
mov ecx, ebx
mov esi, 1
mov eax, 1
mov dword [esp + 8], edx
shld edi, eax, cl
shl esi, cl
test bl, 0x20
mov eax, 0
cmovne edi, esi
cmovne esi, eax
mov eax, edi
mov ecx, esi
and eax, edx
mov edx, dword [esp + 0xc]
and ecx, edx
or ecx, eax
jne 0x4b4760
mov eax, dword [esp + 0x34]
mov ecx, ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], edi
shl ecx, 4
mov esi, dword [eax + ecx + 4]
mov eax, dword [esi + 4]
test eax, 0x41000
je 0x4b47ee
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x3c]
jmp 0x4b47df
add esi, 0xc
mov esi, dword [esi]
mov eax, dword [esi + 4]
test eax, 0x41000
je 0x4b47f6
test eax, 0x40000
je 0x4b47d0
mov esi, dword [esi + 0x14]
add esi, 4
jmp 0x4b47d3
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x3c]
cmp byte [esi], 0xa4
jne 0x4b4764
cmp dword [esi + 0x1c], edi
jne 0x4b4764
movzx eax, word [esi + 0x20]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x98]
mov edx, dword [esp + 0x88]
pcmpeqd xmm0, xmm0
mov dword [esp + 0x10], ecx
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
cmp ax, 0xfffe
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xac], 0
mov byte [esp + 0xb0], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], edi
mov word [esp + 0xb1], 0x101
je 0x4b4a50
lea ecx, [esp + 0xa0]
mov word [esp + 0xe8], ax
call fcn.004b0720
test eax, eax
je 0x4b4a50
mov edi, eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], 0
lea eax, [eax + ecx + 4]
mov dword [esp + 0x2c], eax
jmp 0x4b490f
mov eax, dword [esp + 0x10]
test eax, eax
cmove eax, edi
mov dword [esp + 0x10], eax
lea ecx, [esp + 0xa0]
call fcn.004b0720
mov edi, eax
test eax, eax
je 0x4b4939
mov ebx, dword [edi + 0x20]
mov ecx, dword [edi + 0x24]
mov edx, ecx
mov eax, ebx
and edx, dword [esp + 0x28]
and eax, dword [esp + 0x1c]
or eax, edx
jne 0x4b48fd
or ebx, ecx
jne 0x4b48f0
movzx eax, word [edi + 0xc]
test al, 0x82
je 0x4b48f0
cmp ax, 1
je 0x4b494f
jmp 0x4b497f
mov edi, dword [esp + 0x10]
test edi, edi
je 0x4b4a50
movzx eax, word [edi + 0xc]
cmp ax, 1
jne 0x4b497f
mov ecx, dword [esp + 0x14]
movzx edx, word [ecx + 0x28]
test edx, edx
je 0x4b4a50
mov ebx, edx
mov edx, dword [ecx + 0x30]
xor ecx, ecx
nop word cs:[eax + eax]
cmp edi, dword [edx + ecx*4]
je 0x4b497f
inc ecx
cmp ecx, ebx
jb 0x4b4970
jmp 0x4b4a50
test al, 0x82
je 0x4b4a5d
cmp word [esi + 0x20], 0
js 0x4b4a5d
mov eax, dword [esp + 0x4c]
mov esi, dword [eax]
mov eax, dword [esp + 0x2c]
mov edx, dword [eax]
mov ecx, esi
call fcn.0046dea0
test eax, eax
jne 0x4b49ae
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov ecx, dword [edi]
mov dword [esp + 0x10], eax
test byte [ecx + 5], 2
jne 0x4b49cc
mov edx, dword [ecx + 0xc]
test byte [edx + 5], 1
jne 0x4b4a08
mov edi, dword [ecx + 0x10]
test edi, edi
jne 0x4b49dc
jmp 0x4b49e2
mov edx, dword [ecx + 0x10]
test byte [edx + 5], 1
jne 0x4b4a08
mov edi, dword [ecx + 0xc]
test edi, edi
je 0x4b49e2
test byte [edi + 5], 1
jne 0x4b4a0c
mov ecx, esi
call fcn.0046dea0
mov ecx, esi
mov esi, dword [esp + 0xc]
test eax, eax
jne 0x4b4a1d
mov edx, edi
call fcn.0046dea0
test eax, eax
jne 0x4b4a1d
mov edx, dword [esp + 8]
mov dword [esp + 0xc], esi
jmp 0x4b4a54
mov ecx, esi
jmp 0x4b4a10
mov ecx, esi
mov edx, edi
call fcn.0046dea0
mov esi, dword [esp + 0xc]
test eax, eax
je 0x4b49fe
mov ecx, dword [esp + 0x10]
mov edi, dword [eax]
xor edx, edx
mov esi, dword [ecx]
jmp 0x4b4a35
test cl, cl
je 0x4b4a5d
inc edx
movzx ecx, byte [esi + edx]
movzx eax, byte [edi + edx]
cmp cl, al
je 0x4b4a30
movzx ecx, byte [ecx + 0x50ce7b]
cmp cl, byte [eax + 0x50ce7b]
je 0x4b4a34
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x20]
jmp 0x4b4764
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
or eax, dword [esp + 0x24]
or edx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
jmp 0x4b4a54
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x24]
test eax, 0x1000
jne 0x4b4fd0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0xc]
xor edi, edi
mov ebx, 1
test eax, 0x100
mov dword [esp + 0x5c], 1
mov dword [esp + 0x2c], 0
mov dword [esp + 0x74], 0
jne 0x4b4b16
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x20]
test ecx, ecx
je 0x4b525c
test byte [ecx + 0x37], 4
jne 0x4b525c
movzx ebx, word [ecx + 0x34]
cmp byte [ecx + 0x36], 0
mov dword [esp + 0x5c], ebx
mov ebx, ecx
setne ch
test ax, ax
setns al
and al, ch
cmp dword [esp + 0x5c], 0
mov dword [esp + 0x18], eax
je 0x4b5029
movzx eax, word [ebx + 0x32]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], ebx
mov ebx, 1
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x64], 0
shld eax, ebx, cl
mov ebx, 1
shl ebx, cl
test cl, 0x20
mov ecx, dword [esp + 0x2c]
cmovne eax, ebx
cmovne ebx, edi
mov dword [esp + 0x90], eax
mov eax, 1
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], esi
mov bl, 1
mov dword [esp + 8], edx
mov edx, edi
mov dword [esp + 0x10], edi
movzx esi, word [eax + 0x18]
mov al, 1
cmp edi, esi
mov edx, esi
mov dword [esp + 0x1c], esi
jae 0x4b4ba0
mov eax, dword [esp + 0x14]
mov bl, 1
movzx edx, word [eax + 0x2a]
mov al, 1
cmp dword [esp + 0x10], edx
jae 0x4b4e90
test ecx, ecx
mov dword [esp + 0x24], ebx
je 0x4b4c10
mov edi, ecx
mov esi, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
mov ecx, dword [esp + 0x10]
mov edi, dword [edi + 0x1c]
movzx esi, word [esi + ecx*2]
mov bl, byte [edi + ecx]
mov edi, 0xffff
and bl, 1
cmp si, word [edx + 0x28]
mov dword [esp + 0x54], ebx
cmove esi, edi
cmp ecx, dword [esp + 0x1c]
movsx ecx, si
mov dword [esp + 0x28], ecx
jb 0x4b4c20
cmp byte [esp + 0x18], 0
je 0x4b4c20
test si, si
js 0x4b4c20
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x28]
lea edx, [edx + edx*4]
cmp byte [ecx + edx*4 + 0xc], 0
mov edx, dword [esp + 0x18]
mov ecx, 0
movzx edx, dl
cmove edx, ecx
mov dword [esp + 0x18], edx
jmp 0x4b4c20
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x54], 0
mov esi, dword [esp + 0x24]
test al, al
je 0x4b4fe0
xor edx, edx
nop
xor ebx, ebx
mov ecx, edx
mov edi, 1
mov eax, 1
shld ebx, eax, cl
shl edi, cl
test dl, 0x20
mov eax, 0
cmovne ebx, edi
cmovne edi, eax
mov eax, ebx
mov ecx, edi
and eax, dword [esp + 8]
and ecx, dword [esp + 0xc]
or ecx, eax
jne 0x4b4da7
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], edx
shl edx, 4
mov dword [esp + 0x20], edx
mov ecx, dword [eax + edx + 4]
xor eax, eax
test ecx, ecx
je 0x4b4cba
mov dword [esp + 0x30], ebx
jmp 0x4b4c99
add ecx, 0xc
mov ecx, dword [ecx]
test ecx, ecx
je 0x4b4cb6
mov edx, dword [ecx + 4]
test edx, 0x41000
je 0x4b4cb4
test edx, 0x40000
je 0x4b4c90
mov ecx, dword [ecx + 0x14]
add ecx, 4
jmp 0x4b4c93
mov eax, ecx
mov ebx, dword [esp + 0x30]
mov edx, esi
mov ecx, dword [esp + 0x70]
movzx edx, dl
and ecx, 0xc0
cmove edx, ecx
cmp dword [esp + 0x28], 0xffffffff
jl 0x4b4cf8
cmp byte [eax], 0xa4
jne 0x4b4d44
mov ecx, dword [esp + 0x3c]
cmp dword [eax + 0x1c], ecx
jne 0x4b4d44
movsx eax, word [eax + 0x20]
mov dword [esp + 0x24], edx
cmp dword [esp + 0x28], eax
jne 0x4b4d9f
jmp 0x4b4dc1
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x28]
shl edx, 4
test eax, eax
mov ecx, dword [ecx + edx + 4]
mov edx, 0
jne 0x4b4d29
jmp 0x4b4d68
add eax, 0xc
mov eax, dword [eax]
test eax, eax
je 0x4b4d50
mov edx, dword [eax + 4]
test edx, 0x41000
je 0x4b4d48
test edx, 0x40000
je 0x4b4d20
mov eax, dword [eax + 0x14]
add eax, 4
jmp 0x4b4d23
mov esi, edx
jmp 0x4b4da3
mov edx, eax
test ecx, ecx
jne 0x4b4d6c
jmp 0x4b4d86
xor edx, edx
test ecx, ecx
jne 0x4b4d6c
jmp 0x4b4d86
mov ecx, dword [ecx + 0x14]
add ecx, 4
mov ecx, dword [ecx]
test ecx, ecx
je 0x4b4d86
mov eax, dword [ecx + 4]
test eax, 0x41000
je 0x4b4d8a
test eax, 0x40000
jne 0x4b4d60
add ecx, 0xc
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4b4d6c
xor eax, eax
jmp 0x4b4d8c
mov eax, ecx
xor ecx, ecx
push dword [esp + 0x3c]
push eax
call fcn.0048d5b0
add esp, 8
test eax, eax
je 0x4b4dc1
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
inc edx
cmp edx, dword [esp + 0x40]
jae 0x4b4fe0
mov eax, esi
test al, al
jne 0x4b4c30
jmp 0x4b4fe0
cmp dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x30], ebx
je 0x4b4e30
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
lea eax, [eax + ecx + 4]
mov ecx, dword [esp + 0x4c]
mov edx, dword [eax]
mov esi, dword [ecx]
mov ecx, esi
call fcn.0046dea0
test eax, eax
jne 0x4b4df0
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov esi, dword [eax]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + ecx*4]
jmp 0x4b4e20
movzx ebx, byte [ebx + 0x50ce7b]
cmp bl, byte [eax + 0x50ce7b]
jne 0x4b4d9f
inc edx
movzx ebx, byte [esi + edx]
movzx eax, byte [ecx + edx]
cmp bl, al
jne 0x4b4e10
test bl, bl
jne 0x4b4e1f
movzx eax, word [ebp + 0xc]
test al, al
jns 0x4b4e45
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc eax
mov word [ecx + 0x1e], ax
test byte [esp + 0x70], 0x40
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x30]
jne 0x4b4f60
cmp byte [esp + 0x48], 0
je 0x4b4f1e
mov esi, ebx
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x54]
mov al, byte [eax + ebx + 0xc]
xor cl, byte [esp + 0x50]
mov ebx, esi
and al, 1
cmp cl, al
mov al, 1
mov dword [esp + 0x48], eax
je 0x4b4f60
jmp 0x4b4fe0
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x30]
mov eax, dword [esp + 0x10]
mov edx, dword [edi + eax*4]
movzx ebx, word [edx + 0xc]
test dword [esp + 0x88], ebx
je 0x4b4ed9
mov ecx, dword [esp + 0x18]
test ebx, 0x180
mov eax, 0
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
movzx ecx, cl
cmovne ecx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x18], ecx
jmp 0x4b4faf
test bl, 1
mov al, 1
mov bl, 1
je 0x4b4ba0
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x1c]
mov edx, dword [edx]
add esi, eax
mov eax, dword [esp + 0x60]
lea edi, [edi + eax*4]
nop dword [eax]
test esi, esi
je 0x4b4fc5
mov ebx, dword [edi]
dec esi
add edi, 4
xor eax, eax
cmp dword [ebx], edx
mov ebx, 0
jne 0x4b4f00
jmp 0x4b4ba0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
mov al, byte [eax + ecx + 0xc]
and al, 1
xor al, byte [esp + 0x54]
mov dword [esp + 0x50], eax
mov al, 1
je 0x4b4f54
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x8c]
or dword [eax], ecx
mov ecx, dword [esp + 0x90]
or dword [eax + 4], ecx
jmp 0x4b4f60
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
test byte [eax + ecx + 0xc], 2
je 0x4b4f85
mov eax, dword [esp + 0x14]
movzx eax, word [eax + 0x18]
cmp dword [esp + 0x10], eax
jne 0x4b4fe0
mov eax, dword [esp + 0x14]
or byte [eax + 0x26], 8
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0xc]
cmp edx, 0xffffffff
mov eax, 1
mov edx, dword [esp + 8]
movzx ecx, cl
cmove ecx, eax
or esi, edi
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x60]
or edx, ebx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x2c]
inc edi
dec dword [esp + 0x78]
inc eax
cmp edi, dword [esp + 0x5c]
jne 0x4b4b62
jmp 0x4b500b
mov al, 1
mov bl, 1
jmp 0x4b4ba0
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0xc]
jmp 0x4b5030
mov ecx, dword [esp + 0x18]
movzx eax, word [esp + 0x74]
mov edx, dword [esp + 0x10]
mov esi, 0
cmp edx, eax
movzx ecx, cl
cmovb ecx, esi
test edx, edx
mov esi, dword [esp + 0xc]
cmove ecx, edx
mov edx, dword [esp + 8]
mov dword [esp + 0x18], ecx
cmp byte [esp + 0x64], 0
mov ebx, dword [esp + 0x44]
mov al, 1
jne 0x4b503c
jmp 0x4b5030
mov dword [esp + 0x14], eax
jmp 0x4b51a4
mov ebx, dword [esp + 0x44]
nop dword [eax]
mov eax, dword [esp + 0x18]
test al, al
je 0x4b51f1
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x80]
xor ebx, ebx
mov byte [esp + 0x30], al
or ecx, dword [edx + 0xc]
or esi, dword [edx + 8]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x80], esi
not esi
mov dword [esp + 0x7c], ecx
not ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x3c], ecx
jmp 0x4b509a
or dword [esp + 8], esi
or dword [esp + 0xc], edi
mov edx, dword [esp + 0x1c]
inc ebx
add edx, 0x10
cmp dword [esp + 0x40], ebx
je 0x4b5190
xor esi, esi
mov ecx, ebx
mov edi, 1
mov eax, 1
shld esi, eax, cl
shl edi, cl
test bl, 0x20
mov eax, 0
cmovne esi, edi
cmovne edi, eax
mov eax, esi
mov ecx, edi
and eax, dword [esp + 8]
and ecx, dword [esp + 0xc]
or ecx, eax
jne 0x4b508c
mov ecx, dword [edx]
xor eax, eax
mov dword [esp + 0x1c], edx
test ecx, ecx
mov dword [esp + 0x28], ecx
je 0x4b516a
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x28]
call fcn.004b0160
mov ecx, eax
or ecx, edx
jne 0x4b516c
mov edx, dword [esp + 0x28]
pcmpeqd xmm0, xmm0
lea ecx, [esp + 0xa0]
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0xb0], 0xffffffff
movdqa xmmword [esp + 0xa0], xmm0
mov word [esp + 0xb4], 1
mov dword [esp + 0xa4], 0x48d010
mov dword [esp + 0xa8], 0x48d190
mov dword [esp + 0xb8], 0
call fcn.0048d1b0
xor eax, eax
cmp word [esp + 0xb4], 0
mov edx, 0
jne 0x4b516c
jmp 0x4b5088
xor edx, edx
and edx, dword [esp + 0x3c]
and eax, dword [esp + 0x10]
or eax, edx
je 0x4b5080
xor edi, edi
xor esi, esi
jmp 0x4b5080
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov al, byte [esp + 0x30]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x84]
jae 0x4b51f9
cmp byte [esp + 0x18], 0
je 0x4b51f9
mov edi, dword [esp + 0x38]
mov eax, edx
inc edi
cmp esi, ebx
sbb eax, dword [esp + 0x58]
jb 0x4b46b0
jmp 0x4b51f9
movzx eax, word [ebp + 0xc]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x44]
test al, al
setns al
cmp byte [ecx + 0x1d], 0
setne cl
test al, cl
cmovne edx, dword [esp + 0x58]
cmovne esi, ebx
jmp 0x4b51f9
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x58]
xor ebx, esi
xor eax, edx
or eax, ebx
jne 0x4b520b
mov eax, dword [esp + 0x40]
jmp 0x4b525e
cmp byte [esp + 0x18], 0
mov al, 0xff
mov dword [esp + 8], edx
jne 0x4b525e
mov eax, dword [esp + 0x40]
not dword [esp + 8]
mov edi, esi
xor esi, esi
not edi
nop word cs:[eax + eax]
cmp eax, 2
jl 0x4b525c
dec eax
mov edx, 0xffffffff
mov ebx, 0xffffffff
mov ecx, eax
shl edx, cl
test al, 0x20
cmovne ebx, edx
cmovne edx, esi
not ebx
not edx
and ebx, dword [esp + 8]
and edx, edi
or ebx, edx
jne 0x4b5230
jmp 0x4b525e
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret