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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov dword [esp + 0x94], ecx
lea ecx, [esp + 0x48]
mov dword [esp + 0x14], edx
push 6
push 0x447ec6
push dword [ebp + 8]
call fcn.00411ac0
add esp, 0xc
cmp dword [esp + 0x48], 1
jne 0x41c954
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x64]
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x7c]
lea eax, [edi - 1]
cmp ecx, 0xffffffff
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
lea eax, [edi + ebx - 1]
je 0x41cacf
cmp eax, esi
jae 0x41cddf
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x28], ecx
mov ecx, edi
sub ecx, dword [esp + 0x28]
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x24]
neg ecx
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x20], ecx
nop
mov cl, byte [edx + eax]
xor eax, eax
mov edx, 1
shld eax, edx, cl
mov edx, 1
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and eax, dword [esp + 0x20]
and edx, dword [esp + 0x3c]
or edx, eax
je 0x41c8d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
cmp ecx, eax
cmova eax, ecx
mov ecx, dword [esp + 8]
add ecx, ebx
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp eax, edi
jae 0x41c900
lea edx, [ebx + eax]
cmp edx, esi
jae 0x41d65c
mov edx, dword [esp + 4]
movzx edx, byte [edx + eax]
cmp dl, byte [ecx + eax]
lea eax, [eax + 1]
je 0x41c8a0
add ebx, dword [esp + 0x8c]
add ebx, eax
jmp 0x41c8d2
add ebx, edi
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 8]
add eax, ebx
cmp eax, esi
jb 0x41c850
jmp 0x41cdd3
mov edx, dword [esp + 0x24]
nop word cs:[eax + eax]
nop
cmp dword [esp + 0xc], edx
jae 0x41cbe9
dec edx
cmp edx, edi
jae 0x41d6a7
lea eax, [edx + ebx]
cmp eax, esi
jae 0x41d6b7
mov ecx, dword [esp + 4]
mov edi, dword [esp + 8]
movzx ecx, byte [ecx + edx]
cmp cl, byte [edi + eax]
mov edi, dword [esp + 0x10]
je 0x41c910
mov eax, dword [esp + 0x98]
add ebx, dword [esp + 0x28]
mov dword [esp + 0xc], eax
jmp 0x41c8da
mov esi, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov bl, byte [esp + 0x54]
mov edx, dword [esp + 0x4c]
lea eax, [esi + ecx]
mov dword [esp + 8], esi
mov dword [esp + 0x10], eax
jmp 0x41c982
add edx, eax
test bl, bl
mov bh, bl
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0x1c], ecx
sete bl
test edx, edx
je 0x41c9b4
cmp ecx, edx
je 0x41c9b4
jbe 0x41d66c
cmp byte [esi + edx], 0xbf
jle 0x41d66c
cmp ecx, edx
mov edi, 0x110000
je 0x41ca68
lea eax, [esi + edx]
mov byte [esp + 4], bl
mov bl, byte [eax]
movzx edi, bl
test bl, bl
jns 0x41ca64
lea esi, [eax + 1]
cmp esi, dword [esp + 0x10]
je 0x41ca30
movzx esi, byte [eax + 1]
add eax, 2
and esi, 0x3f
and edi, 0x1f
cmp bl, 0xdf
jbe 0x41ca3e
cmp eax, dword [esp + 0x10]
je 0x41ca43
mov dword [esp + 0x18], esi
movzx esi, byte [eax]
inc eax
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x18]
and dword [esp + 0xc], 0x3f
shl esi, 6
add esi, dword [esp + 0xc]
cmp bl, 0xf0
jb 0x41ca5b
cmp eax, dword [esp + 0x10]
mov bl, byte [esp + 4]
je 0x41cab1
movzx eax, byte [eax]
and eax, 0x3f
jmp 0x41cab3
mov eax, dword [esp + 0x10]
xor esi, esi
and edi, 0x1f
cmp bl, 0xdf
ja 0x41c9f0
shl edi, 6
jmp 0x41ca5e
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], 0
shl esi, 6
add esi, dword [esp + 0xc]
cmp bl, 0xf0
jae 0x41ca17
shl edi, 0xc
or edi, esi
mov esi, dword [esp + 8]
mov bl, byte [esp + 4]
test bh, bh
jne 0x41cc01
cmp edi, 0x110000
je 0x41cddf
mov eax, 1
cmp edi, 0x80
jb 0x41c980
mov eax, 2
cmp edi, 0x800
jb 0x41c980
cmp edi, 0x10000
mov eax, 4
sbb eax, 0
jmp 0x41c980
xor eax, eax
and edi, 7
shl esi, 6
shl edi, 0x12
or esi, edi
or esi, eax
mov edi, esi
mov esi, dword [esp + 8]
test bh, bh
je 0x41ca70
jmp 0x41cc01
cmp eax, esi
jae 0x41cddf
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x18], esi
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xc], edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + edx]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 8]
add ecx, edx
mov edx, dword [esp + 8]
mov dword [esp + 0x24], ecx
jmp 0x41cb37
add edx, edi
mov ebx, edx
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
add eax, ebx
cmp eax, esi
jae 0x41cddb
mov cl, byte [edx + eax]
xor eax, eax
mov edx, 1
shld eax, edx, cl
mov edx, 1
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and eax, dword [esp + 0x20]
and edx, dword [esp + 0x3c]
or edx, eax
mov edx, ebx
je 0x41cb19
mov esi, dword [esp + 0x28]
xor ecx, ecx
mov ebx, edx
nop
mov edi, dword [esp + 0xc]
lea eax, [edi + ecx]
cmp eax, dword [esp + 0x10]
jae 0x41cba0
lea eax, [edi + ebx]
cmp eax, dword [esp + 0x18]
jae 0x41d692
movzx eax, byte [esi]
mov edi, dword [esp + 0x24]
inc esi
inc ecx
cmp al, byte [edi + ebx]
lea ebx, [ebx + 1]
je 0x41cb70
jmp 0x41cb1d
mov eax, edi
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
nop word [eax + eax]
test eax, eax
je 0x41cbfb
dec eax
cmp eax, edi
jae 0x41d6c9
lea ebx, [eax + edx]
cmp ebx, esi
jae 0x41d6db
mov ecx, dword [esp + 4]
mov edi, dword [esp + 8]
movzx ecx, byte [ecx + eax]
cmp cl, byte [edi + ebx]
mov edi, dword [esp + 0x10]
je 0x41cbb0
add edx, dword [esp + 0x8c]
jmp 0x41cb1b
add edi, ebx
mov edx, ebx
mov dword [esp + 0x64], edi
mov dword [esp + 0x6c], 0
jmp 0x41cc01
add edi, edx
mov dword [esp + 0x64], edi
mov ecx, dword [esp + 0x14]
mov edi, dword [ebp + 8]
mov eax, edx
add eax, 6
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x40], edi
je 0x41cc37
cmp eax, edi
je 0x41cc37
jae 0x41d6ed
mov ecx, dword [esp + 0x14]
cmp byte [ecx + eax], 0xbf
jle 0x41d6ed
cmp eax, edi
je 0x41cd41
mov ecx, dword [esp + 0x14]
lea esi, [ecx + edi]
add eax, ecx
mov dword [esp + 4], esi
jmp 0x41cc5a
cmp eax, dword [esp + 4]
je 0x41cd41
movzx ebx, byte [eax]
lea ecx, [eax + 1]
movzx esi, bl
test bl, bl
js 0x41cc90
mov eax, ecx
lea ecx, [esi - 0x41]
cmp ecx, 6
jb 0x41cc50
cmp esi, 0x40
je 0x41cc50
add esi, 0xffffffd0
cmp esi, 9
jbe 0x41cc50
jmp 0x41cd6b
mov edi, dword [esp + 4]
cmp ecx, edi
mov ecx, edi
je 0x41ccd2
movzx edi, byte [eax + 1]
add eax, 2
and edi, 0x3f
and esi, 0x1f
cmp bl, 0xdf
jbe 0x41ccde
cmp eax, ecx
je 0x41cce3
movzx ecx, byte [eax]
inc eax
and ecx, 0x3f
shl edi, 6
or edi, ecx
cmp bl, 0xf0
jb 0x41ccf1
mov ecx, dword [esp + 4]
cmp eax, ecx
je 0x41cd0a
movzx ebx, byte [eax]
inc eax
and ebx, 0x3f
jmp 0x41cd0e
xor edi, edi
mov eax, ecx
and esi, 0x1f
cmp bl, 0xdf
ja 0x41ccac
shl esi, 6
jmp 0x41ccf4
mov eax, ecx
xor ecx, ecx
shl edi, 6
or edi, ecx
cmp bl, 0xf0
jae 0x41ccc1
shl esi, 0xc
or esi, edi
mov edi, dword [ebp + 8]
lea ecx, [esi - 0x41]
cmp ecx, 6
jb 0x41cc50
jmp 0x41cc71
xor ebx, ebx
mov eax, ecx
and esi, 7
shl edi, 6
shl esi, 0x12
or edi, esi
or edi, ebx
cmp edi, 0x110000
mov esi, edi
mov edi, dword [ebp + 8]
je 0x41cd41
nop dword [eax + eax]
lea ecx, [esi - 0x41]
cmp ecx, 6
jb 0x41cc50
jmp 0x41cc71
mov eax, dword [esp + 0x14]
test edx, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edi
je 0x41cd69
cmp edx, edi
je 0x41cd69
jae 0x41d710
mov eax, dword [esp + 0x14]
cmp byte [eax + edx], 0xbf
jle 0x41d710
mov edi, edx
mov edx, dword [esp + 0x14]
cmp edi, 3
je 0x41cdeb
cmp edi, 4
jb 0x41cda2
cmp byte [edx + 3], 0xc0
jl 0x41ce0f
cmp byte [edx + 3], 0xbf
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edi
jle 0x41d72b
cmp edx, 0x447ecc
jne 0x41cdfb
jmp 0x41ce73
mov esi, 3
cmp edi, 2
jne 0x41d619
mov al, 1
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edi
cmp edx, 0x447ecf
je 0x41ce35
movzx ecx, word [edx]
cmp ecx, 0x4e5a
jne 0x41cea9
jmp 0x41ce35
mov eax, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x64], ebx
mov edx, dword [esp + 0x14]
mov edi, dword [ebp + 8]
cmp edi, 3
jne 0x41cd74
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edi
cmp edx, 0x447ecc
je 0x41ce73
movzx eax, word [edx]
movzx ecx, byte [edx + 2]
xor eax, 0x5a5f
xor ecx, 0x4e
or cx, ax
je 0x41ce73
cmp byte [edx + 2], 0xc0
jl 0x41cea9
cmp byte [edx + 2], 0xbf
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edi
jle 0x41d71b
xor eax, eax
cmp edx, 0x447ecf
jne 0x41cdc2
mov ecx, 0xfffffffe
mov esi, 2
test al, al
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x1c], 2
mov dword [esp + 0x40], edi
jne 0x41cf3e
cmp edi, 3
jb 0x41d6ed
cmp byte [edx + 2], 0xbf
jg 0x41cf3e
jmp 0x41d6ed
cmp edi, 3
mov ecx, 0xfffffffd
mov esi, 3
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x1c], 3
mov dword [esp + 0x40], edi
je 0x41cf3e
cmp byte [edx + 3], 0xbf
jg 0x41cf3e
jmp 0x41d6ed
cmp edi, 4
jne 0x41cece
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edi
mov al, 1
cmp edx, 0x447ed1
je 0x41cf09
cmp dword [edx], 0x4e5a5f5f
jne 0x41d214
jmp 0x41cf09
cmp edi, 5
mov dword [esp + 0x10], edi
jb 0x41d207
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp byte [edx + 4], 0xc0
jl 0x41d214
cmp byte [edx + 4], 0xbf
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edi
jle 0x41d73b
xor eax, eax
cmp edx, 0x447ed1
jne 0x41cec0
mov ecx, 0xfffffffc
mov esi, 4
test al, al
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x1c], 4
mov dword [esp + 0x40], edi
jne 0x41cf3e
cmp edi, 5
jb 0x41d6ed
cmp byte [edx + 4], 0xbf
jle 0x41d6ed
add ecx, edi
add esi, edx
mov dword [esp + 0x10], edi
lea edx, [esi + ecx]
mov dword [esp + 0x18], ecx
mov eax, ecx
mov dword [esp + 0xc], esi
mov ecx, esi
mov esi, edx
nop word [eax + eax]
test eax, eax
je 0x41cf72
dec eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jns 0x41cf60
jmp 0x41d207
cmp dword [esp + 0x18], 0
je 0x41d207
mov eax, dword [esp + 0xc]
mov dword [esp + 8], esi
lea ecx, [eax + 1]
mov dword [esp + 4], ecx
mov cl, byte [eax]
movzx edx, cl
test cl, cl
js 0x41d353
cmp edx, 0x45
mov dword [esp + 0x3c], 0
je 0x41d440
cmp edx, 0x110000
je 0x41d207
mov dword [esp + 0x28], 0
add edx, 0xffffffd0
cmp edx, 9
ja 0x41d207
xor eax, eax
jmp 0x41cfe4
mov dword [esp + 4], esi
mov esi, dword [esp + 8]
lea edx, [ebx - 0x30]
cmp edx, 0xa
jae 0x41d104
mov edi, edx
mov edx, 0xa
mov ecx, eax
mul edx
jo 0x41d207
add eax, edi
jb 0x41d207
cmp dword [esp + 4], esi
je 0x41d207
mov edx, dword [esp + 4]
lea esi, [edx + 1]
movzx edx, byte [edx]
movzx ebx, dl
test dl, dl
jns 0x41cfd0
mov dword [esp + 0x24], edi
mov edi, dword [esp + 8]
cmp esi, edi
je 0x41d061
mov edi, dword [esp + 4]
movzx esi, byte [edi + 1]
add edi, 2
mov dword [esp + 4], edi
and esi, 0x3f
mov dword [esp + 0x38], esi
mov esi, dword [esp + 8]
and ebx, 0x1f
cmp dl, 0xdf
jbe 0x41d077
mov edi, dword [esp + 4]
mov dword [esp + 0x20], ebx
cmp edi, esi
je 0x41d090
movzx ebx, byte [edi]
inc edi
mov dword [esp + 4], edi
mov edi, ebx
and edi, 0x3f
jmp 0x41d096
mov esi, edi
mov dword [esp + 0x38], 0
mov dword [esp + 4], edi
and ebx, 0x1f
cmp dl, 0xdf
ja 0x41d046
shl ebx, 6
mov edi, dword [esp + 0x24]
add ebx, dword [esp + 0x38]
lea edx, [ebx - 0x30]
cmp edx, 0xa
jb 0x41cfe4
jmp 0x41d104
xor edi, edi
mov dword [esp + 4], esi
mov ebx, dword [esp + 0x38]
shl ebx, 6
or ebx, edi
mov edi, dword [esp + 0x24]
cmp dl, 0xf0
jb 0x41d0bf
mov edx, dword [esp + 4]
cmp edx, esi
je 0x41d0d8
mov edi, edx
movzx edx, byte [edx]
inc edi
mov dword [esp + 4], edi
and edx, 0x3f
jmp 0x41d0de
mov edx, ebx
mov ebx, dword [esp + 0x20]
shl ebx, 0xc
or ebx, edx
lea edx, [ebx - 0x30]
cmp edx, 0xa
jb 0x41cfe4
jmp 0x41d104
xor edx, edx
mov dword [esp + 4], esi
mov edi, dword [esp + 0x20]
shl ebx, 6
and edi, 7
shl edi, 0x12
or ebx, edi
mov edi, dword [esp + 0x24]
or ebx, edx
cmp ebx, 0x110000
jne 0x41cfd8
jmp 0x41d207
test eax, eax
je 0x41d1e9
mov edx, edi
mov edx, dword [esp + 4]
lea eax, [ecx + ecx*4]
lea ecx, [edi + eax*2]
cmp edx, esi
jne 0x41d137
jmp 0x41d207
shl edi, 6
or edi, edx
dec ecx
mov edx, eax
je 0x41d1ef
cmp edx, esi
je 0x41d207
movzx ebx, byte [edx]
mov eax, edx
inc eax
movzx edi, bl
test bl, bl
jns 0x41d126
cmp eax, esi
je 0x41d15e
mov eax, edx
movzx edx, byte [edx + 1]
add eax, 2
and edx, 0x3f
and edi, 0x1f
cmp bl, 0xdf
jbe 0x41d121
jmp 0x41d16a
xor edx, edx
mov eax, esi
and edi, 0x1f
cmp bl, 0xdf
jbe 0x41d121
cmp eax, esi
mov dword [esp + 0x20], edi
je 0x41d19c
movzx esi, byte [eax]
mov edi, eax
inc edi
mov eax, edi
and esi, 0x3f
shl edx, 6
or edx, esi
cmp bl, 0xf0
jb 0x41d1aa
mov edi, eax
mov eax, dword [esp + 8]
cmp edi, eax
je 0x41d1c2
movzx esi, byte [edi]
inc edi
mov eax, edi
and esi, 0x3f
jmp 0x41d1c4
mov eax, esi
xor esi, esi
shl edx, 6
or edx, esi
cmp bl, 0xf0
jae 0x41d187
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 8]
shl edi, 0xc
or edi, edx
dec ecx
mov edx, eax
jne 0x41d12f
jmp 0x41d1ef
xor esi, esi
mov edi, dword [esp + 0x20]
shl edx, 6
and edi, 7
shl edi, 0x12
or edx, edi
or edx, esi
mov esi, dword [esp + 8]
cmp edx, 0x110000
mov edi, edx
jne 0x41d126
jmp 0x41d207
mov eax, dword [esp + 4]
mov edi, ebx
inc dword [esp + 0x28]
cmp edi, 0x45
mov edx, edi
mov dword [esp + 4], eax
jne 0x41cfbe
jmp 0x41d44c
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp edi, 3
jb 0x41d240
mov al, byte [edx + 2]
cmp al, 0xc0
jl 0x41d24e
lea ecx, [edx + 2]
mov ebx, 0xfffffffe
cmp edx, 0x447ed5
je 0x41d2b8
mov esi, ecx
movzx ecx, word [edx]
cmp ecx, 0x525f
mov ecx, esi
jne 0x41d24e
jmp 0x41d2b8
mov esi, 3
cmp edi, 2
jne 0x41d619
mov al, byte [edx + 1]
cmp al, 0xc0
jl 0x41d26a
lea ecx, [edx + 1]
mov ebx, 0xffffffff
cmp edx, 0x447ed7
je 0x41d2b8
cmp byte [edx], 0x52
je 0x41d2b8
mov esi, 3
cmp edi, 4
jb 0x41d619
mov al, byte [edx + 3]
cmp al, 0xc0
jl 0x41d619
lea ecx, [edx + 3]
mov ebx, 0xfffffffd
cmp edx, 0x447ed8
je 0x41d2b8
mov dword [esp + 0xc], ecx
movzx ecx, word [edx]
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + 2]
xor ecx, 0x5f5f
xor edx, 0x52
or dx, cx
mov ecx, dword [esp + 0xc]
jne 0x41d619
add al, 0xbf
mov esi, 3
cmp al, 0x19
ja 0x41d619
add ebx, edi
xor eax, eax
nop dword [eax + eax]
cmp ebx, eax
je 0x41d2e2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jns 0x41d2d0
jmp 0x41d619
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0
call fcn.00419110
test al, al
jne 0x41d619
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
mov dword [esp + 8], eax
jbe 0x41d3ba
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov al, byte [eax + ecx]
add al, 0xbf
cmp al, 0x1a
jae 0x41d3be
lea ecx, [esp + 0x2c]
call fcn.00419110
test al, al
jne 0x41d619
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
mov dword [esp + 8], eax
jmp 0x41d3be
xor eax, eax
cmp dword [esp + 0x18], 1
je 0x41d36e
mov eax, dword [esp + 0xc]
lea esi, [eax + 2]
movzx eax, byte [eax + 1]
mov dword [esp + 4], esi
and eax, 0x3f
and edx, 0x1f
cmp cl, 0xdf
jbe 0x41d3b5
mov ebx, dword [esp + 8]
cmp esi, ebx
je 0x41d414
movzx edi, byte [esi]
inc esi
mov dword [esp + 4], esi
and edi, 0x3f
shl eax, 6
or eax, edi
cmp cl, 0xf0
jb 0x41d426
cmp esi, dword [esp + 8]
je 0x41d631
movzx ecx, byte [esi]
inc esi
mov dword [esp + 4], esi
and ecx, 0x3f
jmp 0x41d633
shl edx, 6
jmp 0x41d429
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 8]
test ecx, ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x1c], esi
je 0x41d3f1
cmp esi, ecx
je 0x41d3f1
jbe 0x41d74b
cmp byte [eax + ecx], 0xbf
jle 0x41d74b
add eax, ecx
sub esi, ecx
mov dword [esp + 0x3c], 1
mov ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0xc]
test esi, esi
jne 0x41d462
mov dword [esp + 4], eax
xor esi, esi
jmp 0x41d5f1
xor edi, edi
mov esi, ebx
shl eax, 6
or eax, edi
cmp cl, 0xf0
jae 0x41d39b
shl edx, 0xc
or edx, eax
mov esi, dword [esp + 8]
cmp edx, 0x45
mov dword [esp + 0x3c], 0
jne 0x41cfaa
mov eax, dword [esp + 4]
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
sub esi, eax
mov ecx, dword [esp + 0xc]
test esi, esi
je 0x41d409
cmp esi, 1
mov dword [esp + 8], esi
jne 0x41d48d
mov dword [esp + 0x48], eax
mov edx, eax
mov dword [esp + 0x4c], esi
cmp edx, 0x448553
je 0x41d4bc
cmp byte [edx], 0x2e
mov esi, 3
jne 0x41d619
jmp 0x41d4bc
cmp byte [eax + 1], 0xc0
mov esi, 3
jl 0x41d619
mov ecx, dword [esp + 8]
mov dword [esp + 0x48], eax
mov edx, eax
mov dword [esp + 0x4c], ecx
cmp byte [edx + 1], 0xbf
jle 0x41d771
cmp edx, 0x448553
jne 0x41d47d
mov eax, dword [esp + 8]
mov dword [esp + 0x18], ebx
mov dword [esp + 4], edx
mov dword [esp + 0x10], edi
lea ecx, [edx + eax]
jmp 0x41d4e8
cmp edx, ecx
je 0x41d5e1
movzx ebx, byte [edx]
lea eax, [edx + 1]
movzx esi, bl
test bl, bl
js 0x41d540
mov edx, eax
lea eax, [esi - 0x21]
cmp eax, 0xf
jb 0x41d4e0
lea eax, [esi - 0x30]
cmp eax, 0xa
jb 0x41d4e0
mov eax, esi
and eax, 0xffffffdf
add eax, 0xffffffbf
cmp eax, 0x1a
jb 0x41d4e0
lea eax, [esi - 0x3a]
cmp eax, 7
jb 0x41d4e0
lea eax, [esi - 0x5b]
cmp eax, 6
jb 0x41d4e0
add esi, 0xffffff85
cmp esi, 3
jbe 0x41d4e0
jmp 0x41d62a
cmp eax, ecx
je 0x41d578
movzx edi, byte [edx + 1]
add edx, 2
and edi, 0x3f
and esi, 0x1f
cmp bl, 0xdf
jbe 0x41d584
cmp edx, ecx
je 0x41d589
movzx eax, byte [edx]
inc edx
and eax, 0x3f
shl edi, 6
or edi, eax
cmp bl, 0xf0
jb 0x41d597
cmp edx, ecx
je 0x41d5b1
movzx ebx, byte [edx]
inc edx
and ebx, 0x3f
jmp 0x41d5b5
xor edi, edi
mov edx, ecx
and esi, 0x1f
cmp bl, 0xdf
ja 0x41d556
shl esi, 6
jmp 0x41d59a
xor eax, eax
mov edx, ecx
shl edi, 6
or edi, eax
cmp bl, 0xf0
jae 0x41d56b
shl esi, 0xc
or esi, edi
mov edi, dword [esp + 0x10]
lea eax, [esi - 0x21]
cmp eax, 0xf
jae 0x41d4ff
jmp 0x41d4e0
xor ebx, ebx
mov edx, ecx
and esi, 7
shl edi, 6
shl esi, 0x12
or edi, esi
or edi, ebx
cmp edi, 0x110000
mov esi, edi
mov edi, dword [esp + 0x10]
je 0x41d5e1
lea eax, [esi - 0x21]
cmp eax, 0xf
jae 0x41d4ff
jmp 0x41d4e0
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x94]
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], edx
mov edx, dword [esp + 4]
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], esi
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x94]
mov dword [eax], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, 3
jmp 0x41d619
xor ecx, ecx
and edx, 7
shl eax, 6
shl edx, 0x12
or eax, edx
or eax, ecx
mov edx, eax
mov esi, dword [esp + 8]
cmp edx, 0x45
mov dword [esp + 0x3c], 0
jne 0x41cfaa
jmp 0x41d440
mov ecx, 0x4484b8
push esi
call fcn.0040ff60
add esp, 4
ud2
lea eax, [esp + 0x40]
lea edx, [esp + 0x90]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x2c]
call fcn.004121b0
ud2
mov ecx, 0x4484b8
mov edx, eax
push dword [esp + 0x18]
call fcn.0040ff60
add esp, 4
ud2
mov ecx, 0x4484c8
push edi
call fcn.0040ff60
add esp, 4
ud2
mov ecx, 0x4484d8
mov edx, eax
push esi
call fcn.0040ff60
add esp, 4
ud2
mov ecx, 0x4484c8
mov edx, eax
push edi
call fcn.0040ff60
add esp, 4
ud2
mov ecx, 0x4484d8
mov edx, ebx
push esi
call fcn.0040ff60
add esp, 4
ud2
lea eax, [esp + 0x2c]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x40]
lea ecx, [esp + 0x48]
mov dword [esp + 0x50], eax
call fcn.004121b0
ud2
lea ecx, [esp + 0x48]
call fcn.00417c70
ud2
lea ecx, [esp + 0x48]
mov edx, 2
call fcn.00417c70
ud2
lea ecx, [esp + 0x48]
mov edx, 3
call fcn.00417c70
ud2
lea ecx, [esp + 0x48]
mov edx, 4
call fcn.00417c70
ud2
lea eax, [esp + 0x40]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x48]
mov dword [esp + 0x50], eax
call fcn.004121b0
ud2
lea ecx, [esp + 0x48]
mov edx, 1
call fcn.00417c70
ud2