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

Disassembly:
sub esp, 0x114
push ebx
push ebp
mov ebp, dword [esp + 0x120]
xor ebx, ebx
push edi
mov edi, dword [esp + 0x128]
mov dword [esp + 0x10], ebx
cmp byte [ebp + 0x424], bl
jne 0x46dd55
test edi, edi
je 0x46dd55
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x114
ret
push dword [esp + 0x130]
lea eax, [esp + 0x24]
push dword [esp + 0x130]
push eax
call fcn.0046f5d0
add esp, 0xc
test eax, eax
je 0x46dd83
pop edi
pop ebp
mov eax, 0x3c
pop ebx
add esp, 0x114
ret
lea eax, [esp + 0xa0]
push esi
push eax
call fcn.0046f8e0
mov esi, eax
add esp, 4
test esi, esi
je case.0x46ee08.7
cmp byte [ebp + 0x424], bl
je 0x46ddd8
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x46ddb0
sub ecx, edx
push ecx
push esi
push 0x5d3c44
push edi
push ebp
call fcn.0042f170
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x14], ebx
test ebx, ebx
jne 0x46dead
test edi, edi
jne 0x46ddec
push esi
push edi
push 0x5d3c4c
push ebp
call fcn.00435090
add esp, 0x10
push esi
call dword [0x65403c]
lea eax, [esp + 0x78]
push eax
call fcn.0046f8e0
mov esi, eax
add esp, 8
test esi, esi
je case.0x46ee08.7
cmp byte [ebp + 0x424], 0
je 0x46de29
push esi
push 0x5d3c5c
push edi
push ebp
call fcn.004712d0
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x14], ebx
test edi, edi
jne 0x46de3c
push esi
push 0x5d3c64
push ebp
call fcn.00435090
add esp, 0xc
push esi
call dword [0x65403c]
add esp, 4
test ebx, ebx
jne 0x46dead
mov ecx, dword [esp + 0x38]
xor esi, esi
mov edx, dword [esp + 0x3c]
cmp ecx, edx
jae 0x46de65
movzx eax, byte [ecx]
inc ecx
shl esi, 8
or esi, eax
cmp ecx, edx
jb 0x46de58
cmp byte [ebp + 0x424], 0
je 0x46dec1
push esi
push 0x5d242c
call fcn.004395d0
mov edi, eax
add esp, 8
test edi, edi
je case.0x46ee08.7
push edi
push 0x5d3c74
push dword [esp + 0x134]
push ebp
call fcn.004712d0
mov ebx, eax
push edi
mov dword [esp + 0x28], ebx
call dword [0x65403c]
add esp, 0x14
test ebx, ebx
je 0x46deba
pop esi
pop edi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x114
ret
mov edi, dword [esp + 0x12c]
test edi, edi
jne 0x46ded8
push esi
lea eax, [esi + 1]
push eax
push 0x5d3c7c
push ebp
call fcn.00435090
add esp, 0x10
cmp byte [esp + 0x52], 0
jne case.0x46ee08.7
movzx ebp, byte [esp + 0x51]
lea eax, [ebp - 1]
cmp eax, 0x1d
ja case.0x46ee08.7
movzx eax, byte [eax + 0x46f444]
mov ebx, 0x5c88c0
mov edx, 0x5c8d78
jmp dword [eax*4 + 0x46f41c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
sub eax, ecx
cmp eax, 1
je 0x46df22
xor esi, esi
jmp 0x46e2f2
cmp byte [ecx], 0
mov eax, 0x5c8d70
cmove eax, edx
push eax
call dword [0x654044]
add esp, 4
mov esi, eax
jmp 0x46e2f2
mov esi, dword [esp + 0x4c]
mov eax, esi
mov edx, dword [esp + 0x48]
sub eax, edx
jne 0x46df53
xor esi, esi
jmp 0x46e2f2
cmp eax, 4
jbe 0x46df69
push esi
push edx
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46e2f2
movsx ecx, byte [edx]
sar ecx, 0x1f
nop
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x46df70
cmp ecx, 0xa
mov eax, 0x5d3b10
push ecx
cmovb eax, ebx
push eax
push 0x5d3b14
call fcn.004395d0
add esp, 0xc
mov esi, eax
jmp 0x46e2f2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
inc eax
cmp eax, ecx
jbe 0x46dfb2
xor esi, esi
jmp 0x46e2f2
push ecx
push eax
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46e2f2
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46e2f2
push 0x5c88c0
call dword [0x654044]
add esp, 4
mov esi, eax
jmp 0x46e2f2
push 1
push dword [esp + 0x50]
push dword [esp + 0x50]
call fcn.0046f940
add esp, 0xc
mov esi, eax
jmp 0x46e2f2
mov esi, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x4c]
cmp ecx, edx
jae 0x46e023
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x46e023
inc ecx
cmp ecx, edx
jb 0x46e016
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x46e03b
sub eax, 2
je 0x46e040
xor esi, esi
jmp 0x46e2eb
mov edi, 0x5d3b50
cmp ecx, edx
jb 0x46e04b
xor esi, esi
jmp 0x46e2eb
cmp byte [ecx], 0x5a
jne 0x46e05c
mov ecx, 0x5d3b54
mov edx, 0x5d3b57
jmp 0x46e05d
inc ecx
push ecx
sub edx, ecx
lea eax, [esi + 8]
push edx
push edi
push eax
lea eax, [esi + 6]
push eax
lea eax, [esi + 4]
push eax
lea eax, [esi + 2]
push eax
xor eax, eax
cmp byte [esi], 0x35
push esi
setl al
add eax, 0x13
push eax
push 0x5d3b58
call fcn.004395d0
add esp, 0x28
mov esi, eax
jmp 0x46e2eb
mov ebp, dword [esp + 0x48]
mov esi, 0x5c88c0
mov edi, dword [esp + 0x4c]
mov ecx, ebp
cmp ecx, edi
jae 0x46e0b3
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x46e0b3
inc ecx
cmp ecx, edi
jb 0x46e0a6
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x46e0e1
sub eax, 1
je 0x46e0dc
sub eax, 1
je 0x46e0d5
xor esi, esi
jmp 0x46e2eb
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x46e0e3
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x46e142
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x46e0f7
cmp bl, 0x2c
jne 0x46e127
inc ecx
inc eax
cmp eax, edi
jae 0x46e109
mov dl, byte [eax]
cmp dl, 0x30
jl 0x46e109
cmp dl, 0x39
jle 0x46e0f8
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x46e127
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x46e122
dec esi
sub edx, 1
jne 0x46e117
mov esi, 0x5c88c0
cmp eax, edi
jae 0x46e142
cmp byte [eax], 0x5a
jne 0x46e13c
mov eax, 0x5d3b1c
mov edi, 0x5d3b20
jmp 0x46e142
mov esi, 0x5c95e4
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x5c88c0
mov eax, 0x5c8e84
cmove eax, ecx
push eax
movsx eax, bh
push eax
movsx eax, byte [esp + 0x2f]
push eax
lea eax, [ebp + 0xa]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 6]
push eax
lea eax, [ebp + 4]
push eax
push ebp
push 0x5d3b24
call fcn.004395d0
add esp, 0x38
mov esi, eax
jmp 0x46e2eb
mov edi, dword [esp + 0x4c]
lea eax, [ebp - 0xc]
mov esi, dword [esp + 0x48]
mov ecx, 1
sub edi, esi
mov dword [esp + 0x18], ecx
cmp eax, 0x12
ja case.0x46e1ae.13
movzx eax, byte [eax + 0x46f474]
jmp dword [eax*4 + 0x46f464]
mov ecx, 2
jmp 0x46e1c1
mov ecx, 4
mov dword [esp + 0x18], ecx
xor edx, edx
mov eax, edi
div ecx
test edx, edx
jne case.0x46e1ae.13
mov eax, edi
div ecx
cmp eax, 0x3fffffff
ja case.0x46e1ae.13
lea eax, [eax*4 + 1]
push eax
call dword [0x654038]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x46e1ae.13
cmp ebp, 0xc
jne 0x46e21a
test edi, edi
je 0x46e211
push edi
push esi
push ebx
call fcn.00594dc0
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x46e2e4
xor edi, edi
cmp esi, dword [esp + 0x4c]
jae 0x46e211
mov ebp, dword [esp + 0x18]
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x46e243
sub eax, 2
jne 0x46e24c
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
add esi, 2
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
inc esi
movzx eax, byte [esi]
mov edx, 1
shl ecx, 8
inc esi
or ecx, eax
cmp ecx, 0x80
jb 0x46e2c0
cmp ecx, 0x800
jb 0x46e2ac
cmp ecx, 0x10000
jb 0x46e294
cmp ecx, 0x200000
jae 0x46e2d5
mov al, cl
mov edx, 3
and al, 0x3f
or ecx, 0x400000
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 3], al
jmp 0x46e299
mov edx, 2
mov al, cl
or ecx, 0x20000
and al, 0x3f
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 2], al
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 1], al
mov byte [edi + ebx], cl
add edi, edx
cmp esi, dword [esp + 0x4c]
jb 0x46e226
mov byte [edi + ebx], 0
jmp 0x46e2e4
push ebx
call dword [0x65403c]
add esp, 4
or edi, 0xffffffff
xor ebx, ebx
xor esi, esi
test edi, edi
cmovns esi, ebx
mov edi, dword [esp + 0x12c]
test esi, esi
je case.0x46ee08.7
mov ebx, dword [esp + 0x128]
cmp byte [ebx + 0x424], 0
je 0x46e322
push esi
push 0x5d3c94
push edi
push ebx
call fcn.004712d0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x14], edi
jmp 0x46e326
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x12c]
test ebp, ebp
jne 0x46e340
push esi
push 0x5d3ca4
push ebx
call fcn.00435090
add esp, 0xc
push esi
call dword [0x65403c]
add esp, 4
test edi, edi
jne 0x46f248
push dword [esp + 0x5c]
lea eax, [esp + 0x118]
push dword [esp + 0x5c]
push eax
call fcn.00470360
mov esi, eax
add esp, 0xc
test esi, esi
je case.0x46ee08.7
cmp byte [ebx + 0x424], 0
je 0x46e393
push esi
push 0x5d3cbc
push ebp
push ebx
call fcn.004712d0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x14], edi
test ebp, ebp
jne 0x46e3a6
push esi
push 0x5d3cd0
push ebx
call fcn.00435090
add esp, 0xc
push esi
call dword [0x65403c]
add esp, 4
test edi, edi
jne 0x46f248
cmp byte [esp + 0x92], 0
jne case.0x46ee08.7
movzx ebp, byte [esp + 0x91]
lea eax, [ebp - 1]
cmp eax, 0x1d
ja case.0x46ee08.7
movzx eax, byte [eax + 0x46f4b0]
jmp dword [eax*4 + 0x46f488]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
sub eax, ecx
cmp eax, 1
je 0x46e404
xor esi, esi
jmp 0x46e81c
cmp byte [ecx], 0
mov eax, 0x5c8d70
mov ecx, 0x5c8d78
cmove eax, ecx
push eax
call dword [0x654044]
add esp, 4
mov esi, eax
jmp 0x46e81c
mov esi, dword [esp + 0x8c]
mov eax, esi
mov edx, dword [esp + 0x88]
sub eax, edx
jne 0x46e440
xor esi, esi
jmp 0x46e81c
cmp eax, 4
jbe 0x46e456
push esi
push edx
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46e81c
movsx ecx, byte [edx]
sar ecx, 0x1f
nop dword [eax]
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x46e460
push ecx
cmp ecx, 0xa
mov eax, 0x5d3b10
mov ecx, 0x5c88c0
cmovb eax, ecx
push eax
push 0x5d3b14
call fcn.004395d0
add esp, 0xc
mov esi, eax
jmp 0x46e81c
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
inc eax
cmp eax, ecx
jbe 0x46e4ad
xor esi, esi
jmp 0x46e81c
push ecx
push eax
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46e81c
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46e81c
push 0x5c88c0
call dword [0x654044]
add esp, 4
mov esi, eax
jmp 0x46e81c
push 1
push dword [esp + 0x90]
push dword [esp + 0x90]
call fcn.0046f940
add esp, 0xc
mov esi, eax
jmp 0x46e81c
mov esi, dword [esp + 0x88]
mov ecx, esi
mov edx, dword [esp + 0x8c]
cmp ecx, edx
jae 0x46e530
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x46e530
inc ecx
cmp ecx, edx
jb 0x46e523
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x46e548
sub eax, 2
je 0x46e54d
xor esi, esi
jmp 0x46e818
mov edi, 0x5d3b50
cmp ecx, edx
jb 0x46e558
xor esi, esi
jmp 0x46e818
cmp byte [ecx], 0x5a
jne 0x46e569
mov ecx, 0x5d3b54
mov edx, 0x5d3b57
jmp 0x46e56a
inc ecx
push ecx
sub edx, ecx
lea eax, [esi + 8]
push edx
push edi
push eax
lea eax, [esi + 6]
push eax
lea eax, [esi + 4]
push eax
lea eax, [esi + 2]
push eax
xor eax, eax
cmp byte [esi], 0x35
push esi
setl al
add eax, 0x13
push eax
push 0x5d3b58
call fcn.004395d0
add esp, 0x28
mov esi, eax
jmp 0x46e818
mov ebp, dword [esp + 0x88]
mov esi, 0x5c88c0
mov edi, dword [esp + 0x8c]
mov ecx, ebp
cmp ecx, edi
jae 0x46e5cd
nop dword [eax]
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x46e5cd
inc ecx
cmp ecx, edi
jb 0x46e5c0
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x46e5fb
sub eax, 1
je 0x46e5f6
sub eax, 1
je 0x46e5ef
xor esi, esi
jmp 0x46e818
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x46e5fd
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x46e65c
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x46e611
cmp bl, 0x2c
jne 0x46e641
inc ecx
inc eax
cmp eax, edi
jae 0x46e623
mov dl, byte [eax]
cmp dl, 0x30
jl 0x46e623
cmp dl, 0x39
jle 0x46e612
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x46e641
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x46e63c
dec esi
sub edx, 1
jne 0x46e631
mov esi, 0x5c88c0
cmp eax, edi
jae 0x46e65c
cmp byte [eax], 0x5a
jne 0x46e656
mov eax, 0x5d3b1c
mov edi, 0x5d3b20
jmp 0x46e65c
mov esi, 0x5c95e4
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x5c88c0
mov eax, 0x5c8e84
cmove eax, ecx
push eax
movsx eax, bh
push eax
movsx eax, byte [esp + 0x2f]
push eax
lea eax, [ebp + 0xa]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 6]
push eax
lea eax, [ebp + 4]
push eax
push ebp
push 0x5d3b24
call fcn.004395d0
add esp, 0x38
mov esi, eax
jmp 0x46e818
mov edi, dword [esp + 0x8c]
lea eax, [ebp - 0xc]
mov esi, dword [esp + 0x88]
mov ecx, 1
sub edi, esi
mov dword [esp + 0x18], ecx
cmp eax, 0x12
ja case.0x46e6ce.13
movzx eax, byte [eax + 0x46f4e0]
jmp dword [eax*4 + 0x46f4d0]
mov ecx, 2
jmp 0x46e6e1
mov ecx, 4
mov dword [esp + 0x18], ecx
xor edx, edx
mov eax, edi
div ecx
test edx, edx
jne case.0x46e6ce.13
mov eax, edi
div ecx
cmp eax, 0x3fffffff
ja case.0x46e6ce.13
lea eax, [eax*4 + 1]
push eax
call dword [0x654038]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x46e6ce.13
cmp ebp, 0xc
jne 0x46e73a
test edi, edi
je 0x46e731
push edi
push esi
push ebx
call fcn.00594dc0
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x46e811
xor edi, edi
cmp esi, dword [esp + 0x8c]
jae 0x46e731
mov ebp, dword [esp + 0x18]
nop dword [eax]
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x46e76d
sub eax, 2
jne 0x46e776
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
add esi, 2
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
inc esi
movzx eax, byte [esi]
mov edx, 1
shl ecx, 8
inc esi
or ecx, eax
cmp ecx, 0x80
jb 0x46e7ea
cmp ecx, 0x800
jb 0x46e7d6
cmp ecx, 0x10000
jb 0x46e7be
cmp ecx, 0x200000
jae 0x46e802
mov al, cl
mov edx, 3
and al, 0x3f
or ecx, 0x400000
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 3], al
jmp 0x46e7c3
mov edx, 2
mov al, cl
or ecx, 0x20000
and al, 0x3f
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 2], al
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 1], al
mov byte [edi + ebx], cl
add edi, edx
cmp esi, dword [esp + 0x8c]
jb 0x46e750
mov byte [edi + ebx], 0
jmp 0x46e811
push ebx
call dword [0x65403c]
add esp, 4
or edi, 0xffffffff
xor ebx, ebx
xor esi, esi
test edi, edi
cmovns esi, ebx
mov edi, dword [esp + 0x14]
test esi, esi
je case.0x46ee08.7
mov ebx, dword [esp + 0x128]
cmp byte [ebx + 0x424], 0
je 0x46e850
push esi
push 0x5d3cec
push dword [esp + 0x134]
push ebx
call fcn.004712d0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x14], edi
cmp dword [esp + 0x12c], 0
jne 0x46e869
push esi
push 0x5d3cf8
push ebx
call fcn.00435090
add esp, 0xc
push esi
call dword [0x65403c]
add esp, 4
test edi, edi
jne 0x46f248
cmp byte [esp + 0xa2], 0
jne case.0x46ee08.7
movzx ebp, byte [esp + 0xa1]
lea eax, [ebp - 1]
cmp eax, 0x1d
ja case.0x46ee08.7
movzx eax, byte [eax + 0x46f51c]
jmp dword [eax*4 + 0x46f4f4]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
sub eax, ecx
cmp eax, 1
je 0x46e8c7
xor esi, esi
jmp 0x46ecdc
cmp byte [ecx], 0
mov eax, 0x5c8d70
mov ecx, 0x5c8d78
cmove eax, ecx
push eax
call dword [0x654044]
add esp, 4
mov esi, eax
jmp 0x46ecdc
mov esi, dword [esp + 0x9c]
mov eax, esi
mov edx, dword [esp + 0x98]
sub eax, edx
jne 0x46e903
xor esi, esi
jmp 0x46ecdc
cmp eax, 4
jbe 0x46e919
push esi
push edx
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46ecdc
movsx ecx, byte [edx]
sar ecx, 0x1f
nop
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x46e920
push ecx
cmp ecx, 0xa
mov eax, 0x5d3b10
mov ecx, 0x5c88c0
cmovb eax, ecx
push eax
push 0x5d3b14
call fcn.004395d0
add esp, 0xc
mov esi, eax
jmp 0x46ecdc
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
inc eax
cmp eax, ecx
jbe 0x46e96d
xor esi, esi
jmp 0x46ecdc
push ecx
push eax
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46ecdc
push dword [esp + 0x9c]
push dword [esp + 0x9c]
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46ecdc
push 0x5c88c0
call dword [0x654044]
add esp, 4
mov esi, eax
jmp 0x46ecdc
push 1
push dword [esp + 0xa0]
push dword [esp + 0xa0]
call fcn.0046f940
add esp, 0xc
mov esi, eax
jmp 0x46ecdc
mov esi, dword [esp + 0x98]
mov ecx, esi
mov edx, dword [esp + 0x9c]
cmp ecx, edx
jae 0x46e9f0
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x46e9f0
inc ecx
cmp ecx, edx
jb 0x46e9e3
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x46ea08
sub eax, 2
je 0x46ea0d
xor esi, esi
jmp 0x46ecd8
mov edi, 0x5d3b50
cmp ecx, edx
jb 0x46ea18
xor esi, esi
jmp 0x46ecd8
cmp byte [ecx], 0x5a
jne 0x46ea29
mov ecx, 0x5d3b54
mov edx, 0x5d3b57
jmp 0x46ea2a
inc ecx
push ecx
sub edx, ecx
lea eax, [esi + 8]
push edx
push edi
push eax
lea eax, [esi + 6]
push eax
lea eax, [esi + 4]
push eax
lea eax, [esi + 2]
push eax
xor eax, eax
cmp byte [esi], 0x35
push esi
setl al
add eax, 0x13
push eax
push 0x5d3b58
call fcn.004395d0
add esp, 0x28
mov esi, eax
jmp 0x46ecd8
mov ebp, dword [esp + 0x98]
mov esi, 0x5c88c0
mov edi, dword [esp + 0x9c]
mov ecx, ebp
cmp ecx, edi
jae 0x46ea8d
nop dword [eax]
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x46ea8d
inc ecx
cmp ecx, edi
jb 0x46ea80
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x46eabb
sub eax, 1
je 0x46eab6
sub eax, 1
je 0x46eaaf
xor esi, esi
jmp 0x46ecd8
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x46eabd
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x46eb1c
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x46ead1
cmp bl, 0x2c
jne 0x46eb01
inc ecx
inc eax
cmp eax, edi
jae 0x46eae3
mov dl, byte [eax]
cmp dl, 0x30
jl 0x46eae3
cmp dl, 0x39
jle 0x46ead2
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x46eb01
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x46eafc
dec esi
sub edx, 1
jne 0x46eaf1
mov esi, 0x5c88c0
cmp eax, edi
jae 0x46eb1c
cmp byte [eax], 0x5a
jne 0x46eb16
mov eax, 0x5d3b1c
mov edi, 0x5d3b20
jmp 0x46eb1c
mov esi, 0x5c95e4
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x5c88c0
mov eax, 0x5c8e84
cmove eax, ecx
push eax
movsx eax, bh
push eax
movsx eax, byte [esp + 0x2f]
push eax
lea eax, [ebp + 0xa]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 6]
push eax
lea eax, [ebp + 4]
push eax
push ebp
push 0x5d3b24
call fcn.004395d0
add esp, 0x38
mov esi, eax
jmp 0x46ecd8
mov edi, dword [esp + 0x9c]
lea eax, [ebp - 0xc]
mov esi, dword [esp + 0x98]
mov ecx, 1
sub edi, esi
mov dword [esp + 0x18], ecx
cmp eax, 0x12
ja case.0x46eb8e.13
movzx eax, byte [eax + 0x46f54c]
jmp dword [eax*4 + 0x46f53c]
mov ecx, 2
jmp 0x46eba1
mov ecx, 4
mov dword [esp + 0x18], ecx
xor edx, edx
mov eax, edi
div ecx
test edx, edx
jne case.0x46eb8e.13
mov eax, edi
div ecx
cmp eax, 0x3fffffff
ja case.0x46eb8e.13
lea eax, [eax*4 + 1]
push eax
call dword [0x654038]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x46eb8e.13
cmp ebp, 0xc
jne 0x46ebfa
test edi, edi
je 0x46ebf1
push edi
push esi
push ebx
call fcn.00594dc0
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x46ecd1
xor edi, edi
cmp esi, dword [esp + 0x9c]
jae 0x46ebf1
mov ebp, dword [esp + 0x18]
nop dword [eax]
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x46ec2d
sub eax, 2
jne 0x46ec36
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
add esi, 2
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
inc esi
movzx eax, byte [esi]
mov edx, 1
shl ecx, 8
inc esi
or ecx, eax
cmp ecx, 0x80
jb 0x46ecaa
cmp ecx, 0x800
jb 0x46ec96
cmp ecx, 0x10000
jb 0x46ec7e
cmp ecx, 0x200000
jae 0x46ecc2
mov al, cl
mov edx, 3
and al, 0x3f
or ecx, 0x400000
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 3], al
jmp 0x46ec83
mov edx, 2
mov al, cl
or ecx, 0x20000
and al, 0x3f
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 2], al
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 1], al
mov byte [edi + ebx], cl
add edi, edx
cmp esi, dword [esp + 0x9c]
jb 0x46ec10
mov byte [edi + ebx], 0
jmp 0x46ecd1
push ebx
call dword [0x65403c]
add esp, 4
or edi, 0xffffffff
xor ebx, ebx
xor esi, esi
test edi, edi
cmovns esi, ebx
mov edi, dword [esp + 0x14]
test esi, esi
je case.0x46ee08.7
mov ebp, dword [esp + 0x128]
mov ebx, dword [esp + 0x12c]
cmp byte [ebp + 0x424], 0
je 0x46ed11
push esi
push 0x5d3d0c
push ebx
push ebp
call fcn.004712d0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x14], edi
test ebx, ebx
jne 0x46ed24
push esi
push 0x5d3d18
push ebp
call fcn.00435090
add esp, 0xc
push esi
call dword [0x65403c]
add esp, 4
test edi, edi
jne 0x46f248
push dword [esp + 0xcc]
lea eax, [esp + 0x118]
push dword [esp + 0xcc]
push eax
call fcn.00470360
mov esi, eax
add esp, 0xc
test esi, esi
je case.0x46ee08.7
cmp byte [ebp + 0x424], 0
je 0x46ed81
push esi
push 0x5d3d2c
push ebx
push ebp
call fcn.004712d0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x14], edi
test edi, edi
jne 0x46edcf
test ebx, ebx
jne 0x46ed94
push esi
push 0x5d3d44
push ebp
call fcn.00435090
add esp, 0xc
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x118]
push eax
push esi
push ebx
push ebp
call fcn.0046fab0
add esp, 0x14
test eax, eax
je 0x46edcf
push esi
mov edi, 0x1b
call dword [0x65403c]
add esp, 4
mov eax, edi
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x114
ret
push esi
call dword [0x65403c]
add esp, 4
test edi, edi
jne 0x46f248
cmp byte [esp + 0x72], 0
jne case.0x46ee08.7
movzx ecx, byte [esp + 0x71]
mov dword [esp + 0x18], ecx
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x46ee08.7
movzx eax, byte [eax + 0x46f588]
jmp dword [eax*4 + 0x46f560]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
sub eax, ecx
cmp eax, 1
je 0x46ee25
xor esi, esi
jmp 0x46f1f8
cmp byte [ecx], 0
mov eax, 0x5c8d70
mov ecx, 0x5c8d78
cmove eax, ecx
push eax
call dword [0x654044]
add esp, 4
mov esi, eax
jmp 0x46f1f8
mov esi, dword [esp + 0x6c]
mov eax, esi
mov edx, dword [esp + 0x68]
sub eax, edx
jne 0x46ee5b
xor esi, esi
jmp 0x46f1f8
cmp eax, 4
jbe 0x46ee71
push esi
push edx
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46f1f8
movsx ecx, byte [edx]
sar ecx, 0x1f
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x46ee77
push ecx
cmp ecx, 0xa
mov eax, 0x5d3b10
mov ecx, 0x5c88c0
cmovb eax, ecx
push eax
push 0x5d3b14
call fcn.004395d0
add esp, 0xc
mov esi, eax
jmp 0x46f1f8
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
inc eax
cmp eax, ecx
jbe 0x46eebe
xor esi, esi
jmp 0x46f1f8
push ecx
push eax
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46f1f8
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.00471260
add esp, 8
mov esi, eax
jmp 0x46f1f8
push 0x5c88c0
call dword [0x654044]
add esp, 4
mov esi, eax
jmp 0x46f1f8
push 1
push dword [esp + 0x70]
push dword [esp + 0x70]
call fcn.0046f940
add esp, 0xc
mov esi, eax
jmp 0x46f1f8
mov esi, dword [esp + 0x68]
mov ecx, esi
mov edx, dword [esp + 0x6c]
cmp ecx, edx
jae 0x46ef2f
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x46ef2f
inc ecx
cmp ecx, edx
jb 0x46ef22
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x46ef47
sub eax, 2
je 0x46ef4c
xor esi, esi
jmp 0x46f1f4
mov edi, 0x5d3b50
cmp ecx, edx
jb 0x46ef57
xor esi, esi
jmp 0x46f1f4
cmp byte [ecx], 0x5a
jne 0x46ef68
mov ecx, 0x5d3b54
mov edx, 0x5d3b57
jmp 0x46ef69
inc ecx
push ecx
sub edx, ecx
lea eax, [esi + 8]
push edx
push edi
push eax
lea eax, [esi + 6]
push eax
lea eax, [esi + 4]
push eax
lea eax, [esi + 2]
push eax
xor eax, eax
cmp byte [esi], 0x35
push esi
setl al
add eax, 0x13
push eax
push 0x5d3b58
call fcn.004395d0
add esp, 0x28
mov esi, eax
jmp 0x46f1f4
mov ebp, dword [esp + 0x68]
mov edi, 0x5c88c0
mov esi, dword [esp + 0x6c]
mov ecx, ebp
cmp ecx, esi
jae 0x46efbf
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x46efbf
inc ecx
cmp ecx, esi
jb 0x46efb2
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x46efed
sub eax, 1
je 0x46efe8
sub eax, 1
je 0x46efe1
xor esi, esi
jmp 0x46f1ed
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x46efef
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, esi
jae 0x46f04e
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x46f003
cmp bl, 0x2c
jne 0x46f033
inc ecx
inc eax
cmp eax, esi
jae 0x46f015
mov dl, byte [eax]
cmp dl, 0x30
jl 0x46f015
cmp dl, 0x39
jle 0x46f004
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x46f033
lea edi, [ecx - 1]
add edi, edx
cmp byte [edi], 0x30
jne 0x46f02e
dec edi
sub edx, 1
jne 0x46f023
mov edi, 0x5c88c0
cmp eax, esi
jae 0x46f04e
cmp byte [eax], 0x5a
jne 0x46f048
mov eax, 0x5d3b1c
mov esi, 0x5d3b20
jmp 0x46f04e
mov edi, 0x5c95e4
inc eax
push eax
sub esi, eax
test edx, edx
push esi
push edi
push ecx
push edx
mov ecx, 0x5c88c0
mov eax, 0x5c8e84
cmove eax, ecx
push eax
movsx eax, bh
push eax
movsx eax, byte [esp + 0x2f]
push eax
lea eax, [ebp + 0xa]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 6]
push eax
lea eax, [ebp + 4]
push eax
push ebp
push 0x5d3b24
call fcn.004395d0
add esp, 0x38
mov esi, eax
jmp 0x46f1ed
mov edi, dword [esp + 0x6c]
add ecx, 0xfffffff4
mov esi, dword [esp + 0x68]
mov ebp, 1
sub edi, esi
cmp ecx, 0x12
ja case.0x46f0b6.13
movzx eax, byte [ecx + 0x46f5b8]
jmp dword [eax*4 + 0x46f5a8]
mov ebp, 2
jmp case.0x46f0b6.12
mov ebp, 4
xor edx, edx
mov eax, edi
div ebp
test edx, edx
jne case.0x46f0b6.13
mov eax, edi
div ebp
cmp eax, 0x3fffffff
ja case.0x46f0b6.13
lea eax, [eax*4 + 1]
push eax
call dword [0x654038]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x46f0b6.13
cmp dword [esp + 0x18], 0xc
jne 0x46f120
test edi, edi
je 0x46f117
push edi
push esi
push ebx
call fcn.00594dc0
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x46f1e6
xor edi, edi
cmp esi, dword [esp + 0x6c]
jae 0x46f117
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x46f145
sub eax, 2
jne 0x46f14e
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
add esi, 2
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
inc esi
movzx eax, byte [esi]
mov edx, 1
shl ecx, 8
inc esi
or ecx, eax
cmp ecx, 0x80
jb 0x46f1c2
cmp ecx, 0x800
jb 0x46f1ae
cmp ecx, 0x10000
jb 0x46f196
cmp ecx, 0x200000
jae 0x46f1d7
mov al, cl
mov edx, 3
and al, 0x3f
or ecx, 0x400000
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 3], al
jmp 0x46f19b
mov edx, 2
mov al, cl
or ecx, 0x20000
and al, 0x3f
or al, 0x80
shr ecx, 6
mov byte [edi + ebx + 2], al
mov al, cl
or ecx, 0x3000
and al, 0x3f
shr ecx, 6
or al, 0x80
inc edx
mov byte [edi + ebx + 1], al
mov byte [edi + ebx], cl
add edi, edx
cmp esi, dword [esp + 0x6c]
jb 0x46f128
mov byte [edi + ebx], 0
jmp 0x46f1e6
push ebx
call dword [0x65403c]
add esp, 4
or edi, 0xffffffff
xor ebx, ebx
xor esi, esi
test edi, edi
cmovns esi, ebx
mov ebp, dword [esp + 0x128]
mov edi, dword [esp + 0x14]
test esi, esi
je case.0x46ee08.7
cmp byte [ebp + 0x424], 0
je 0x46f221
push esi
push 0x5d3d60
push dword [esp + 0x134]
push ebp
call fcn.004712d0
add esp, 0x10
mov edi, eax
cmp dword [esp + 0x12c], 0
jne 0x46f23a
push esi
push 0x5d3d6c
push ebp
call fcn.00435090
add esp, 0xc
push esi
call dword [0x65403c]
add esp, 4
test edi, edi
je 0x46f255
pop esi
mov eax, edi
pop edi
pop ebp
pop ebx
add esp, 0x114
ret
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x34]
sub eax, ecx
push eax
push ecx
call fcn.0044bb10
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x46f40d
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + 0x3f]
add ecx, 0x37
shr eax, 6
add eax, ecx
push eax
call dword [0x654038]
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x46f2b9
push dword [esp + 0x20]
call dword [0x65403c]
add esp, 4
pop esi
pop edi
pop ebp
mov eax, 0x1b
pop ebx
add esp, 0x114
ret
mov ecx, 0x5d2be8
lea edx, [ebx + 2]
xor esi, esi
movzx eax, byte [ecx]
mov byte [edx - 2], al
movzx eax, byte [ecx]
test al, al
je 0x46f317
movzx eax, byte [ecx + 1]
mov byte [edx - 1], al
movzx eax, byte [ecx + 1]
test al, al
je 0x46f316
movzx eax, byte [ecx + 2]
mov byte [edx], al
movzx eax, byte [ecx + 2]
test al, al
je 0x46f311
movzx eax, byte [ecx + 3]
mov byte [edx + 1], al
movzx eax, byte [ecx + 3]
add ecx, 4
test al, al
je 0x46f30c
add esi, 4
add edx, 4
cmp esi, 0x40
jb 0x46f2c3
jmp 0x46f317
add esi, 3
jmp 0x46f317
add esi, 2
jmp 0x46f317
inc esi
mov byte [esi + ebx], 0xa
lea edi, [esi + 1]
xor esi, esi
cmp dword [esp + 0x1c], esi
jbe 0x46f344
mov eax, dword [esp + 0x20]
add eax, esi
push eax
lea eax, [ebx + edi]
push eax
call fcn.0046fa20
add esi, 0x40
add esp, 8
add edi, eax
cmp esi, dword [esp + 0x1c]
jb 0x46f326
lea edx, [ebx + 2]
xor esi, esi
mov ecx, 0x5d3d80
add edx, edi
movzx eax, byte [ecx]
mov byte [edx - 2], al
movzx eax, byte [ecx]
test al, al
je 0x46f3a4
movzx eax, byte [ecx + 1]
mov byte [edx - 1], al
movzx eax, byte [ecx + 1]
test al, al
je 0x46f3a3
movzx eax, byte [ecx + 2]
mov byte [edx], al
movzx eax, byte [ecx + 2]
test al, al
je 0x46f39e
movzx eax, byte [ecx + 3]
mov byte [edx + 1], al
movzx eax, byte [ecx + 3]
add ecx, 4
test al, al
je 0x46f399
add esi, 4
add edx, 4
cmp esi, 0x40
jb 0x46f350
jmp 0x46f3a4
add esi, 3
jmp 0x46f3a4
add esi, 2
jmp 0x46f3a4
inc esi
lea eax, [ebx + edi]
mov byte [esi + eax], 0xa
lea eax, [esi + ebx]
mov byte [eax + edi + 1], 0
push dword [esp + 0x20]
call dword [0x65403c]
mov eax, dword [esp + 0x12c]
add esp, 4
mov esi, dword [esp + 0x12c]
cmp byte [eax + 0x424], 0
je 0x46f3f0
push ebx
push 0x5d3d9c
push esi
push eax
call fcn.004712d0
mov ebp, eax
add esp, 0x10
mov eax, dword [esp + 0x128]
test esi, esi
jne 0x46f403
push ebx
push 0x5c897c
push eax
call fcn.00435090
add esp, 0xc
push ebx
call dword [0x65403c]
add esp, 4
pop esi
pop edi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x114
ret