Function at 0x478130
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 0x478165
test edi, edi
je 0x478165
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.004799e0
add esp, 0xc
test eax, eax
je 0x478193
pop edi
pop ebp
mov eax, 0x3c
pop ebx
add esp, 0x114
ret
lea eax, [esp + 0xa0]
push esi
push eax
call fcn.00479cf0
mov esi, eax
add esp, 4
test esi, esi
je case.0x479218.7
cmp byte [ebp + 0x424], bl
je 0x4781e8
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4781c0
sub ecx, edx
push ecx
push esi
push 0x4da598
push edi
push ebp
call fcn.00439810
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x14], ebx
test ebx, ebx
jne 0x4782bd
test edi, edi
jne 0x4781fc
push esi
push edi
push 0x4da5a0
push ebp
call fcn.0043f710
add esp, 0x10
push esi
call dword [0x4f3004]
lea eax, [esp + 0x78]
push eax
call fcn.00479cf0
mov esi, eax
add esp, 8
test esi, esi
je case.0x479218.7
cmp byte [ebp + 0x424], 0
je 0x478239
push esi
push 0x4da5b0
push edi
push ebp
call fcn.0047b6e0
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x14], ebx
test edi, edi
jne 0x47824c
push esi
push 0x4da5b8
push ebp
call fcn.0043f710
add esp, 0xc
push esi
call dword [0x4f3004]
add esp, 4
test ebx, ebx
jne 0x4782bd
mov ecx, dword [esp + 0x38]
xor esi, esi
mov edx, dword [esp + 0x3c]
cmp ecx, edx
jae 0x478275
movzx eax, byte [ecx]
inc ecx
shl esi, 8
or esi, eax
cmp ecx, edx
jb 0x478268
cmp byte [ebp + 0x424], 0
je 0x4782d1
push esi
push 0x4d8d84
call fcn.004443b0
mov edi, eax
add esp, 8
test edi, edi
je case.0x479218.7
push edi
push 0x4da5c8
push dword [esp + 0x134]
push ebp
call fcn.0047b6e0
mov ebx, eax
push edi
mov dword [esp + 0x28], ebx
call dword [0x4f3004]
add esp, 0x14
test ebx, ebx
je 0x4782ca
pop esi
pop edi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x114
ret
mov edi, dword [esp + 0x12c]
test edi, edi
jne 0x4782e8
push esi
lea eax, [esi + 1]
push eax
push 0x4da5d0
push ebp
call fcn.0043f710
add esp, 0x10
cmp byte [esp + 0x52], 0
jne case.0x479218.7
movzx ebp, byte [esp + 0x51]
lea eax, [ebp - 1]
cmp eax, 0x1d
ja case.0x479218.7
movzx eax, byte [eax + 0x479854]
mov ebx, 0x4e7312
mov edx, 0x4cf6fc
jmp dword [eax*4 + 0x47982c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
sub eax, ecx
cmp eax, 1
je 0x478332
xor esi, esi
jmp 0x478702
cmp byte [ecx], 0
mov eax, 0x4cf6f4
cmove eax, edx
push eax
call dword [0x4f300c]
add esp, 4
mov esi, eax
jmp 0x478702
mov esi, dword [esp + 0x4c]
mov eax, esi
mov edx, dword [esp + 0x48]
sub eax, edx
jne 0x478363
xor esi, esi
jmp 0x478702
cmp eax, 4
jbe 0x478379
push esi
push edx
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x478702
movsx ecx, byte [edx]
sar ecx, 0x1f
nop
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x478380
cmp ecx, 0xa
mov eax, 0x4da464
push ecx
cmovb eax, ebx
push eax
push 0x4da468
call fcn.004443b0
add esp, 0xc
mov esi, eax
jmp 0x478702
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
inc eax
cmp eax, ecx
jbe 0x4783c2
xor esi, esi
jmp 0x478702
push ecx
push eax
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x478702
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x478702
push 0x4e7312
call dword [0x4f300c]
add esp, 4
mov esi, eax
jmp 0x478702
push 1
push dword [esp + 0x50]
push dword [esp + 0x50]
call fcn.00479d50
add esp, 0xc
mov esi, eax
jmp 0x478702
mov esi, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x4c]
cmp ecx, edx
jae 0x478433
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x478433
inc ecx
cmp ecx, edx
jb 0x478426
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x47844b
sub eax, 2
je 0x478450
xor esi, esi
jmp 0x4786fb
mov edi, 0x4da4a4
cmp ecx, edx
jb 0x47845b
xor esi, esi
jmp 0x4786fb
cmp byte [ecx], 0x5a
jne 0x47846c
mov ecx, 0x4da4a8
mov edx, 0x4da4ab
jmp 0x47846d
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 0x4da4ac
call fcn.004443b0
add esp, 0x28
mov esi, eax
jmp 0x4786fb
mov ebp, dword [esp + 0x48]
mov esi, 0x4e7312
mov edi, dword [esp + 0x4c]
mov ecx, ebp
cmp ecx, edi
jae 0x4784c3
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4784c3
inc ecx
cmp ecx, edi
jb 0x4784b6
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x4784f1
sub eax, 1
je 0x4784ec
sub eax, 1
je 0x4784e5
xor esi, esi
jmp 0x4786fb
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x4784f3
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x478552
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x478507
cmp bl, 0x2c
jne 0x478537
inc ecx
inc eax
cmp eax, edi
jae 0x478519
mov dl, byte [eax]
cmp dl, 0x30
jl 0x478519
cmp dl, 0x39
jle 0x478508
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x478537
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x478532
dec esi
sub edx, 1
jne 0x478527
mov esi, 0x4e7312
cmp eax, edi
jae 0x478552
cmp byte [eax], 0x5a
jne 0x47854c
mov eax, 0x4da470
mov edi, 0x4da474
jmp 0x478552
mov esi, 0x4cff54
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x4e7312
mov eax, 0x4e8170
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 0x4da478
call fcn.004443b0
add esp, 0x38
mov esi, eax
jmp 0x4786fb
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.0x4785be.13
movzx eax, byte [eax + 0x479884]
jmp dword [eax*4 + 0x479874]
mov ecx, 2
jmp 0x4785d1
mov ecx, 4
mov dword [esp + 0x18], ecx
xor edx, edx
mov eax, edi
div ecx
test edx, edx
jne case.0x4785be.13
mov eax, edi
div ecx
cmp eax, 0x3fffffff
ja case.0x4785be.13
lea eax, [eax*4 + 1]
push eax
call dword [section..data]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x4785be.13
cmp ebp, 0xc
jne 0x47862a
test edi, edi
je 0x478621
push edi
push esi
push ebx
call fcn.0049ef50
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x4786f4
xor edi, edi
cmp esi, dword [esp + 0x4c]
jae 0x478621
mov ebp, dword [esp + 0x18]
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x478653
sub eax, 2
jne 0x47865c
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 0x4786d0
cmp ecx, 0x800
jb 0x4786bc
cmp ecx, 0x10000
jb 0x4786a4
cmp ecx, 0x200000
jae 0x4786e5
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 0x4786a9
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 0x478636
mov byte [edi + ebx], 0
jmp 0x4786f4
push ebx
call dword [0x4f3004]
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.0x479218.7
mov ebx, dword [esp + 0x128]
cmp byte [ebx + 0x424], 0
je 0x478732
push esi
push 0x4da5e8
push edi
push ebx
call fcn.0047b6e0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x14], edi
jmp 0x478736
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x12c]
test ebp, ebp
jne 0x478750
push esi
push 0x4da5f8
push ebx
call fcn.0043f710
add esp, 0xc
push esi
call dword [0x4f3004]
add esp, 4
test edi, edi
jne 0x479658
push dword [esp + 0x5c]
lea eax, [esp + 0x118]
push dword [esp + 0x5c]
push eax
call fcn.0047a770
mov esi, eax
add esp, 0xc
test esi, esi
je case.0x479218.7
cmp byte [ebx + 0x424], 0
je 0x4787a3
push esi
push 0x4da610
push ebp
push ebx
call fcn.0047b6e0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x14], edi
test ebp, ebp
jne 0x4787b6
push esi
push 0x4da624
push ebx
call fcn.0043f710
add esp, 0xc
push esi
call dword [0x4f3004]
add esp, 4
test edi, edi
jne 0x479658
cmp byte [esp + 0x92], 0
jne case.0x479218.7
movzx ebp, byte [esp + 0x91]
lea eax, [ebp - 1]
cmp eax, 0x1d
ja case.0x479218.7
movzx eax, byte [eax + 0x4798c0]
jmp dword [eax*4 + 0x479898]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
sub eax, ecx
cmp eax, 1
je 0x478814
xor esi, esi
jmp 0x478c2c
cmp byte [ecx], 0
mov eax, 0x4cf6f4
mov ecx, 0x4cf6fc
cmove eax, ecx
push eax
call dword [0x4f300c]
add esp, 4
mov esi, eax
jmp 0x478c2c
mov esi, dword [esp + 0x8c]
mov eax, esi
mov edx, dword [esp + 0x88]
sub eax, edx
jne 0x478850
xor esi, esi
jmp 0x478c2c
cmp eax, 4
jbe 0x478866
push esi
push edx
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x478c2c
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 0x478870
push ecx
cmp ecx, 0xa
mov eax, 0x4da464
mov ecx, 0x4e7312
cmovb eax, ecx
push eax
push 0x4da468
call fcn.004443b0
add esp, 0xc
mov esi, eax
jmp 0x478c2c
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
inc eax
cmp eax, ecx
jbe 0x4788bd
xor esi, esi
jmp 0x478c2c
push ecx
push eax
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x478c2c
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x478c2c
push 0x4e7312
call dword [0x4f300c]
add esp, 4
mov esi, eax
jmp 0x478c2c
push 1
push dword [esp + 0x90]
push dword [esp + 0x90]
call fcn.00479d50
add esp, 0xc
mov esi, eax
jmp 0x478c2c
mov esi, dword [esp + 0x88]
mov ecx, esi
mov edx, dword [esp + 0x8c]
cmp ecx, edx
jae 0x478940
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x478940
inc ecx
cmp ecx, edx
jb 0x478933
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x478958
sub eax, 2
je 0x47895d
xor esi, esi
jmp 0x478c28
mov edi, 0x4da4a4
cmp ecx, edx
jb 0x478968
xor esi, esi
jmp 0x478c28
cmp byte [ecx], 0x5a
jne 0x478979
mov ecx, 0x4da4a8
mov edx, 0x4da4ab
jmp 0x47897a
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 0x4da4ac
call fcn.004443b0
add esp, 0x28
mov esi, eax
jmp 0x478c28
mov ebp, dword [esp + 0x88]
mov esi, 0x4e7312
mov edi, dword [esp + 0x8c]
mov ecx, ebp
cmp ecx, edi
jae 0x4789dd
nop dword [eax]
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4789dd
inc ecx
cmp ecx, edi
jb 0x4789d0
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x478a0b
sub eax, 1
je 0x478a06
sub eax, 1
je 0x4789ff
xor esi, esi
jmp 0x478c28
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x478a0d
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x478a6c
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x478a21
cmp bl, 0x2c
jne 0x478a51
inc ecx
inc eax
cmp eax, edi
jae 0x478a33
mov dl, byte [eax]
cmp dl, 0x30
jl 0x478a33
cmp dl, 0x39
jle 0x478a22
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x478a51
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x478a4c
dec esi
sub edx, 1
jne 0x478a41
mov esi, 0x4e7312
cmp eax, edi
jae 0x478a6c
cmp byte [eax], 0x5a
jne 0x478a66
mov eax, 0x4da470
mov edi, 0x4da474
jmp 0x478a6c
mov esi, 0x4cff54
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x4e7312
mov eax, 0x4e8170
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 0x4da478
call fcn.004443b0
add esp, 0x38
mov esi, eax
jmp 0x478c28
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.0x478ade.13
movzx eax, byte [eax + 0x4798f0]
jmp dword [eax*4 + 0x4798e0]
mov ecx, 2
jmp 0x478af1
mov ecx, 4
mov dword [esp + 0x18], ecx
xor edx, edx
mov eax, edi
div ecx
test edx, edx
jne case.0x478ade.13
mov eax, edi
div ecx
cmp eax, 0x3fffffff
ja case.0x478ade.13
lea eax, [eax*4 + 1]
push eax
call dword [section..data]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x478ade.13
cmp ebp, 0xc
jne 0x478b4a
test edi, edi
je 0x478b41
push edi
push esi
push ebx
call fcn.0049ef50
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x478c21
xor edi, edi
cmp esi, dword [esp + 0x8c]
jae 0x478b41
mov ebp, dword [esp + 0x18]
nop dword [eax]
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x478b7d
sub eax, 2
jne 0x478b86
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 0x478bfa
cmp ecx, 0x800
jb 0x478be6
cmp ecx, 0x10000
jb 0x478bce
cmp ecx, 0x200000
jae 0x478c12
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 0x478bd3
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 0x478b60
mov byte [edi + ebx], 0
jmp 0x478c21
push ebx
call dword [0x4f3004]
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.0x479218.7
mov ebx, dword [esp + 0x128]
cmp byte [ebx + 0x424], 0
je 0x478c60
push esi
push 0x4da640
push dword [esp + 0x134]
push ebx
call fcn.0047b6e0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x14], edi
cmp dword [esp + 0x12c], 0
jne 0x478c79
push esi
push 0x4da64c
push ebx
call fcn.0043f710
add esp, 0xc
push esi
call dword [0x4f3004]
add esp, 4
test edi, edi
jne 0x479658
cmp byte [esp + 0xa2], 0
jne case.0x479218.7
movzx ebp, byte [esp + 0xa1]
lea eax, [ebp - 1]
cmp eax, 0x1d
ja case.0x479218.7
movzx eax, byte [eax + 0x47992c]
jmp dword [eax*4 + 0x479904]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
sub eax, ecx
cmp eax, 1
je 0x478cd7
xor esi, esi
jmp 0x4790ec
cmp byte [ecx], 0
mov eax, 0x4cf6f4
mov ecx, 0x4cf6fc
cmove eax, ecx
push eax
call dword [0x4f300c]
add esp, 4
mov esi, eax
jmp 0x4790ec
mov esi, dword [esp + 0x9c]
mov eax, esi
mov edx, dword [esp + 0x98]
sub eax, edx
jne 0x478d13
xor esi, esi
jmp 0x4790ec
cmp eax, 4
jbe 0x478d29
push esi
push edx
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x4790ec
movsx ecx, byte [edx]
sar ecx, 0x1f
nop
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x478d30
push ecx
cmp ecx, 0xa
mov eax, 0x4da464
mov ecx, 0x4e7312
cmovb eax, ecx
push eax
push 0x4da468
call fcn.004443b0
add esp, 0xc
mov esi, eax
jmp 0x4790ec
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
inc eax
cmp eax, ecx
jbe 0x478d7d
xor esi, esi
jmp 0x4790ec
push ecx
push eax
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x4790ec
push dword [esp + 0x9c]
push dword [esp + 0x9c]
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x4790ec
push 0x4e7312
call dword [0x4f300c]
add esp, 4
mov esi, eax
jmp 0x4790ec
push 1
push dword [esp + 0xa0]
push dword [esp + 0xa0]
call fcn.00479d50
add esp, 0xc
mov esi, eax
jmp 0x4790ec
mov esi, dword [esp + 0x98]
mov ecx, esi
mov edx, dword [esp + 0x9c]
cmp ecx, edx
jae 0x478e00
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x478e00
inc ecx
cmp ecx, edx
jb 0x478df3
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x478e18
sub eax, 2
je 0x478e1d
xor esi, esi
jmp 0x4790e8
mov edi, 0x4da4a4
cmp ecx, edx
jb 0x478e28
xor esi, esi
jmp 0x4790e8
cmp byte [ecx], 0x5a
jne 0x478e39
mov ecx, 0x4da4a8
mov edx, 0x4da4ab
jmp 0x478e3a
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 0x4da4ac
call fcn.004443b0
add esp, 0x28
mov esi, eax
jmp 0x4790e8
mov ebp, dword [esp + 0x98]
mov esi, 0x4e7312
mov edi, dword [esp + 0x9c]
mov ecx, ebp
cmp ecx, edi
jae 0x478e9d
nop dword [eax]
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x478e9d
inc ecx
cmp ecx, edi
jb 0x478e90
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x478ecb
sub eax, 1
je 0x478ec6
sub eax, 1
je 0x478ebf
xor esi, esi
jmp 0x4790e8
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x478ecd
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, edi
jae 0x478f2c
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x478ee1
cmp bl, 0x2c
jne 0x478f11
inc ecx
inc eax
cmp eax, edi
jae 0x478ef3
mov dl, byte [eax]
cmp dl, 0x30
jl 0x478ef3
cmp dl, 0x39
jle 0x478ee2
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x478f11
lea esi, [ecx - 1]
add esi, edx
cmp byte [esi], 0x30
jne 0x478f0c
dec esi
sub edx, 1
jne 0x478f01
mov esi, 0x4e7312
cmp eax, edi
jae 0x478f2c
cmp byte [eax], 0x5a
jne 0x478f26
mov eax, 0x4da470
mov edi, 0x4da474
jmp 0x478f2c
mov esi, 0x4cff54
inc eax
push eax
sub edi, eax
test edx, edx
push edi
push esi
push ecx
push edx
mov ecx, 0x4e7312
mov eax, 0x4e8170
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 0x4da478
call fcn.004443b0
add esp, 0x38
mov esi, eax
jmp 0x4790e8
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.0x478f9e.13
movzx eax, byte [eax + 0x47995c]
jmp dword [eax*4 + 0x47994c]
mov ecx, 2
jmp 0x478fb1
mov ecx, 4
mov dword [esp + 0x18], ecx
xor edx, edx
mov eax, edi
div ecx
test edx, edx
jne case.0x478f9e.13
mov eax, edi
div ecx
cmp eax, 0x3fffffff
ja case.0x478f9e.13
lea eax, [eax*4 + 1]
push eax
call dword [section..data]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x478f9e.13
cmp ebp, 0xc
jne 0x47900a
test edi, edi
je 0x479001
push edi
push esi
push ebx
call fcn.0049ef50
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x4790e1
xor edi, edi
cmp esi, dword [esp + 0x9c]
jae 0x479001
mov ebp, dword [esp + 0x18]
nop dword [eax]
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x47903d
sub eax, 2
jne 0x479046
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 0x4790ba
cmp ecx, 0x800
jb 0x4790a6
cmp ecx, 0x10000
jb 0x47908e
cmp ecx, 0x200000
jae 0x4790d2
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 0x479093
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 0x479020
mov byte [edi + ebx], 0
jmp 0x4790e1
push ebx
call dword [0x4f3004]
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.0x479218.7
mov ebp, dword [esp + 0x128]
mov ebx, dword [esp + 0x12c]
cmp byte [ebp + 0x424], 0
je 0x479121
push esi
push 0x4da660
push ebx
push ebp
call fcn.0047b6e0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x14], edi
test ebx, ebx
jne 0x479134
push esi
push 0x4da66c
push ebp
call fcn.0043f710
add esp, 0xc
push esi
call dword [0x4f3004]
add esp, 4
test edi, edi
jne 0x479658
push dword [esp + 0xcc]
lea eax, [esp + 0x118]
push dword [esp + 0xcc]
push eax
call fcn.0047a770
mov esi, eax
add esp, 0xc
test esi, esi
je case.0x479218.7
cmp byte [ebp + 0x424], 0
je 0x479191
push esi
push 0x4da680
push ebx
push ebp
call fcn.0047b6e0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x14], edi
test edi, edi
jne 0x4791df
test ebx, ebx
jne 0x4791a4
push esi
push 0x4da698
push ebp
call fcn.0043f710
add esp, 0xc
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x118]
push eax
push esi
push ebx
push ebp
call fcn.00479ec0
add esp, 0x14
test eax, eax
je 0x4791df
push esi
mov edi, 0x1b
call dword [0x4f3004]
add esp, 4
mov eax, edi
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x114
ret
push esi
call dword [0x4f3004]
add esp, 4
test edi, edi
jne 0x479658
cmp byte [esp + 0x72], 0
jne case.0x479218.7
movzx ecx, byte [esp + 0x71]
mov dword [esp + 0x18], ecx
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x479218.7
movzx eax, byte [eax + 0x479998]
jmp dword [eax*4 + 0x479970]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
sub eax, ecx
cmp eax, 1
je 0x479235
xor esi, esi
jmp 0x479608
cmp byte [ecx], 0
mov eax, 0x4cf6f4
mov ecx, 0x4cf6fc
cmove eax, ecx
push eax
call dword [0x4f300c]
add esp, 4
mov esi, eax
jmp 0x479608
mov esi, dword [esp + 0x6c]
mov eax, esi
mov edx, dword [esp + 0x68]
sub eax, edx
jne 0x47926b
xor esi, esi
jmp 0x479608
cmp eax, 4
jbe 0x479281
push esi
push edx
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x479608
movsx ecx, byte [edx]
sar ecx, 0x1f
movzx eax, byte [edx]
inc edx
shl ecx, 8
or ecx, eax
cmp edx, esi
jb 0x479287
push ecx
cmp ecx, 0xa
mov eax, 0x4da464
mov ecx, 0x4e7312
cmovb eax, ecx
push eax
push 0x4da468
call fcn.004443b0
add esp, 0xc
mov esi, eax
jmp 0x479608
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
inc eax
cmp eax, ecx
jbe 0x4792ce
xor esi, esi
jmp 0x479608
push ecx
push eax
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x479608
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.0047b670
add esp, 8
mov esi, eax
jmp 0x479608
push 0x4e7312
call dword [0x4f300c]
add esp, 4
mov esi, eax
jmp 0x479608
push 1
push dword [esp + 0x70]
push dword [esp + 0x70]
call fcn.00479d50
add esp, 0xc
mov esi, eax
jmp 0x479608
mov esi, dword [esp + 0x68]
mov ecx, esi
mov edx, dword [esp + 0x6c]
cmp ecx, edx
jae 0x47933f
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x47933f
inc ecx
cmp ecx, edx
jb 0x479332
lea edi, [esi + 0xa]
mov eax, ecx
sub eax, edi
sub eax, 0
je 0x479357
sub eax, 2
je 0x47935c
xor esi, esi
jmp 0x479604
mov edi, 0x4da4a4
cmp ecx, edx
jb 0x479367
xor esi, esi
jmp 0x479604
cmp byte [ecx], 0x5a
jne 0x479378
mov ecx, 0x4da4a8
mov edx, 0x4da4ab
jmp 0x479379
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 0x4da4ac
call fcn.004443b0
add esp, 0x28
mov esi, eax
jmp 0x479604
mov ebp, dword [esp + 0x68]
mov edi, 0x4e7312
mov esi, dword [esp + 0x6c]
mov ecx, ebp
cmp ecx, esi
jae 0x4793cf
mov al, byte [ecx]
sub al, 0x30
cmp al, 9
ja 0x4793cf
inc ecx
cmp ecx, esi
jb 0x4793c2
mov eax, ecx
mov byte [esp + 0x13], 0x30
sub eax, ebp
sub eax, 0xc
sub eax, 0
je 0x4793fd
sub eax, 1
je 0x4793f8
sub eax, 1
je 0x4793f1
xor esi, esi
jmp 0x4795fd
mov al, byte [ecx - 2]
mov byte [esp + 0x13], al
mov bh, byte [ecx - 1]
jmp 0x4793ff
mov bh, 0x30
xor edx, edx
mov eax, ecx
cmp ecx, esi
jae 0x47945e
mov bl, byte [ecx]
cmp bl, 0x2e
je 0x479413
cmp bl, 0x2c
jne 0x479443
inc ecx
inc eax
cmp eax, esi
jae 0x479425
mov dl, byte [eax]
cmp dl, 0x30
jl 0x479425
cmp dl, 0x39
jle 0x479414
mov edx, eax
sub edx, ecx
sub edx, 1
je 0x479443
lea edi, [ecx - 1]
add edi, edx
cmp byte [edi], 0x30
jne 0x47943e
dec edi
sub edx, 1
jne 0x479433
mov edi, 0x4e7312
cmp eax, esi
jae 0x47945e
cmp byte [eax], 0x5a
jne 0x479458
mov eax, 0x4da470
mov esi, 0x4da474
jmp 0x47945e
mov edi, 0x4cff54
inc eax
push eax
sub esi, eax
test edx, edx
push esi
push edi
push ecx
push edx
mov ecx, 0x4e7312
mov eax, 0x4e8170
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 0x4da478
call fcn.004443b0
add esp, 0x38
mov esi, eax
jmp 0x4795fd
mov edi, dword [esp + 0x6c]
add ecx, 0xfffffff4
mov esi, dword [esp + 0x68]
mov ebp, 1
sub edi, esi
cmp ecx, 0x12
ja case.0x4794c6.13
movzx eax, byte [ecx + 0x4799c8]
jmp dword [eax*4 + 0x4799b8]
mov ebp, 2
jmp case.0x4794c6.12
mov ebp, 4
xor edx, edx
mov eax, edi
div ebp
test edx, edx
jne case.0x4794c6.13
mov eax, edi
div ebp
cmp eax, 0x3fffffff
ja case.0x4794c6.13
lea eax, [eax*4 + 1]
push eax
call dword [section..data]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x4794c6.13
cmp dword [esp + 0x18], 0xc
jne 0x479530
test edi, edi
je 0x479527
push edi
push esi
push ebx
call fcn.0049ef50
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x4795f6
xor edi, edi
cmp esi, dword [esp + 0x6c]
jae 0x479527
mov eax, ebp
xor ecx, ecx
sub eax, 2
je 0x479555
sub eax, 2
jne 0x47955e
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 0x4795d2
cmp ecx, 0x800
jb 0x4795be
cmp ecx, 0x10000
jb 0x4795a6
cmp ecx, 0x200000
jae 0x4795e7
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 0x4795ab
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 0x479538
mov byte [edi + ebx], 0
jmp 0x4795f6
push ebx
call dword [0x4f3004]
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.0x479218.7
cmp byte [ebp + 0x424], 0
je 0x479631
push esi
push 0x4da6b4
push dword [esp + 0x134]
push ebp
call fcn.0047b6e0
add esp, 0x10
mov edi, eax
cmp dword [esp + 0x12c], 0
jne 0x47964a
push esi
push 0x4da6c0
push ebp
call fcn.0043f710
add esp, 0xc
push esi
call dword [0x4f3004]
add esp, 4
test edi, edi
je 0x479665
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.00456180
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x47981d
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + 0x3f]
add ecx, 0x37
shr eax, 6
add eax, ecx
push eax
call dword [section..data]
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4796c9
push dword [esp + 0x20]
call dword [0x4f3004]
add esp, 4
pop esi
pop edi
pop ebp
mov eax, 0x1b
pop ebx
add esp, 0x114
ret
mov ecx, 0x4d9540
lea edx, [ebx + 2]
xor esi, esi
movzx eax, byte [ecx]
mov byte [edx - 2], al
movzx eax, byte [ecx]
test al, al
je 0x479727
movzx eax, byte [ecx + 1]
mov byte [edx - 1], al
movzx eax, byte [ecx + 1]
test al, al
je 0x479726
movzx eax, byte [ecx + 2]
mov byte [edx], al
movzx eax, byte [ecx + 2]
test al, al
je 0x479721
movzx eax, byte [ecx + 3]
mov byte [edx + 1], al
movzx eax, byte [ecx + 3]
add ecx, 4
test al, al
je 0x47971c
add esi, 4
add edx, 4
cmp esi, 0x40
jb 0x4796d3
jmp 0x479727
add esi, 3
jmp 0x479727
add esi, 2
jmp 0x479727
inc esi
mov byte [esi + ebx], 0xa
lea edi, [esi + 1]
xor esi, esi
cmp dword [esp + 0x1c], esi
jbe 0x479754
mov eax, dword [esp + 0x20]
add eax, esi
push eax
lea eax, [ebx + edi]
push eax
call fcn.00479e30
add esi, 0x40
add esp, 8
add edi, eax
cmp esi, dword [esp + 0x1c]
jb 0x479736
lea edx, [ebx + 2]
xor esi, esi
mov ecx, 0x4da6d4
add edx, edi
movzx eax, byte [ecx]
mov byte [edx - 2], al
movzx eax, byte [ecx]
test al, al
je 0x4797b4
movzx eax, byte [ecx + 1]
mov byte [edx - 1], al
movzx eax, byte [ecx + 1]
test al, al
je 0x4797b3
movzx eax, byte [ecx + 2]
mov byte [edx], al
movzx eax, byte [ecx + 2]
test al, al
je 0x4797ae
movzx eax, byte [ecx + 3]
mov byte [edx + 1], al
movzx eax, byte [ecx + 3]
add ecx, 4
test al, al
je 0x4797a9
add esi, 4
add edx, 4
cmp esi, 0x40
jb 0x479760
jmp 0x4797b4
add esi, 3
jmp 0x4797b4
add esi, 2
jmp 0x4797b4
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 [0x4f3004]
mov eax, dword [esp + 0x12c]
add esp, 4
mov esi, dword [esp + 0x12c]
cmp byte [eax + 0x424], 0
je 0x479800
push ebx
push 0x4da6f0
push esi
push eax
call fcn.0047b6e0
mov ebp, eax
add esp, 0x10
mov eax, dword [esp + 0x128]
test esi, esi
jne 0x479813
push ebx
push 0x4cf304
push eax
call fcn.0043f710
add esp, 0xc
push ebx
call dword [0x4f3004]
add esp, 4
pop esi
pop edi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x114
ret