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

Disassembly:
sub esp, 0x5b0
xor ecx, ecx
mov eax, dword [esp + 0x5c4]
mov dword [esp + 0x51], ecx
push ebx
mov dword [esp + 0x59], ecx
mov dword [0x4bbd2c], eax
mov dword [esp + 0x5d], ecx
push ebp
mov word [esp + 0x65], cx
lea eax, [esp + 0x74]
mov byte [esp + 0x67], cl
mov byte [esp + 0x3c], cl
mov dword [esp + 0x3d], ecx
push esi
mov dword [esp + 0x45], ecx
push edi
mov dword [esp + 0x4d], ecx
mov dword [esp + 0x2c], eax
mov word [esp + 0x51], cx
xor eax, eax
mov byte [esp + 0x53], cl
mov byte [esp + 0xac], cl
mov ecx, 0x81
lea edi, [esp + 0xad]
mov edx, dword [esp + 0x5cc]
xor ebx, ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [esp + 0x14], edx
lea edx, [esp + 0x44]
stosb byte es:[edi], al
lea eax, [esp + 0xac]
mov dword [esp + 0x18], edx
mov edx, dword [0x4b5ef0]
mov edi, dword [esp + 0x5c8]
mov dword [esp + 0x10], eax
xor eax, eax
cmp edx, 1
mov esi, dword [esp + 0x5c4]
lea ecx, [esp + 0x3b8]
mov dword [0x4bbcec], ebx
sete al
mov dword [esp + 0x70], ecx
mov ecx, dword [0x4bbd30]
mov dword [0x4bbd08], eax
mov dword [0x4bbd0c], eax
lea eax, [eax + eax + 2]
mov dword [0x4bbcfc], ebx
mov dword [0x4bbcf8], ebx
mov dword [0x4bbcf0], 0x4b4a68
mov dword [0x4bbcf4], 0x4b4a74
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], eax
mov eax, dword [edi]
cmp ecx, ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x28], ebx
mov byte [esp + 0x60], bl
mov dword [esp + 0x20], 0x4ba580
mov dword [esp + 0x30], 0x20
mov dword [esp + 0x38], 0x2c
mov dword [esp + 0x58], ebx
mov dword [esp + 0x40], ebx
je 0x474652
mov ecx, dword [esi + 0x2e8]
cmp ecx, ebx
je 0x474652
mov edx, dword [ecx + 4]
cmp edx, ebx
je 0x474652
mov ecx, dword [ecx + 0x21c]
cmp ecx, ebx
je 0x474652
sub ecx, edx
add eax, ecx
lea edx, [esp + 0x14]
push eax
push edx
call fcn.00475f20
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x6c]
mov byte [eax], 0x20
mov ebx, dword [esp + 0x20]
mov eax, dword [edi]
push 0x10
push edx
inc ebx
push eax
push esi
mov dword [esp + 0x30], ebx
call fcn.0042a590
add esp, 0x1c
test eax, eax
jne 0x474694
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5b0
ret
mov ebx, dword [esp + 0x60]
lea eax, [esp + 0x18]
and ebx, 0xff
lea ecx, [esp + 0x61]
mov dword [0x4bbd10], ecx
mov edx, dword [ebx + ebx*4 + 0x4b52e0]
push edx
push eax
call fcn.00475c50
mov edi, dword [esp + 0x24]
xor ecx, ecx
mov cl, byte [ebx + ebx*4 + 0x4b52e4]
add esp, 8
mov ebp, ecx
add ebp, 0x4b51ec
xor eax, eax
mov al, byte [ebp]
mov ecx, eax
and eax, 0x3f
and ecx, 0xc0
inc ebp
cmp eax, 0x2c
mov dword [esp + 0x74], ecx
ja case.0x4746ec.24
jmp dword [eax*4 + 0x475588]
mov eax, dword [0x4bbd08]
test eax, eax
je case.0x4746ec.24
xor edx, edx
mov dl, byte [ebp]
inc ebp
mov esi, edx
test esi, esi
lea eax, [esp + esi + 0x44]
mov dword [esp + 0x18], eax
jne 0x47474e
lea ecx, [esp + 0x18]
push str.cwde
push ecx
call fcn.00475c50
add esp, 8
mov esi, dword [esp + 0x5c4]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x74]
sub eax, 0x40
je 0x4752f8
sub eax, 0x40
je 0x4752e3
sub eax, 0x40
je 0x47532c
jmp 0x4746d2
mov eax, dword [0x4bbd34]
test eax, eax
je 0x474764
push 0x64
call dword [sym.imp.MSVCRT.dll_toupper]
add esp, 4
jmp 0x474769
mov eax, 0x64
mov edx, dword [esp + 0x18]
mov byte [edx], al
mov ecx, dword [esp + 0x18]
inc ecx
cmp esi, 1
mov dword [esp + 0x18], ecx
jne 0x474722
mov eax, dword [0x4bbd34]
test eax, eax
je 0x4747a2
push 0x71
call dword [sym.imp.MSVCRT.dll_toupper]
mov ecx, dword [esp + 0x1c]
add esp, 4
mov byte [ecx], al
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
jmp 0x474722
mov ecx, dword [esp + 0x18]
mov eax, 0x71
mov byte [ecx], al
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
jmp 0x474722
test bl, 1
je 0x4747ec
mov eax, dword [0x4bbd08]
test eax, eax
je 0x4747ec
mov eax, dword [0x4bbd34]
test eax, eax
je 0x4747e7
push 0x64
call dword [sym.imp.MSVCRT.dll_toupper]
add esp, 4
mov byte [esp + 0x48], al
inc ebp
jmp case.0x4746ec.24
mov byte [esp + 0x48], 0x64
inc ebp
jmp case.0x4746ec.24
mov eax, dword [esp + 0x10]
mov dl, byte [ebp]
mov byte [eax], dl
mov ecx, dword [esp + 0x10]
inc ecx
inc ebp
mov dword [esp + 0x10], ecx
jmp case.0x4746ec.24
lea ecx, [ebx + 1]
test cl, 4
je 0x47482f
mov eax, dword [0x4bbd34]
test eax, eax
je 0x474828
push 0x74
call dword [sym.imp.MSVCRT.dll_toupper]
add esp, 4
jmp 0x474875
mov eax, 0x74
jmp 0x474875
lea eax, [ebx - 1]
test al, 1
mov eax, dword [0x4bbd34]
je 0x47485f
test eax, eax
je 0x474852
push 0x64
call dword [sym.imp.MSVCRT.dll_toupper]
mov ecx, dword [esp + 0x14]
add esp, 4
mov byte [ecx], al
jmp 0x47487b
mov ecx, dword [esp + 0x10]
mov eax, 0x64
mov byte [ecx], al
jmp 0x47487b
test eax, eax
je 0x474870
push 0x63
call dword [sym.imp.MSVCRT.dll_toupper]
add esp, 4
jmp 0x474875
mov eax, 0x63
mov edx, dword [esp + 0x10]
mov byte [edx], al
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [0x4bbd34]
test eax, eax
je 0x47489a
push 0x72
call dword [sym.imp.MSVCRT.dll_toupper]
add esp, 4
jmp 0x47489f
mov eax, 0x72
mov ecx, dword [esp + 0x10]
mov byte [ecx], al
mov eax, dword [esp + 0x10]
mov dl, byte [0x4bbd14]
inc eax
add dl, 0x30
mov dword [esp + 0x10], eax
mov byte [eax], dl
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
jmp case.0x4746ec.24
mov ecx, dword [esp + 0x40]
mov eax, ebx
sub eax, ecx
sar eax, 3
and eax, 7
mov dword [0x4bbd14], eax
jmp 0x4748e1
mov eax, dword [0x4bbd14]
mov ecx, dword [0x4bbd34]
movsx eax, byte [eax + str.ecsdfg]
test ecx, ecx
je 0x4748fc
push eax
call dword [sym.imp.MSVCRT.dll_toupper]
add esp, 4
mov ecx, dword [esp + 0x10]
mov byte [ecx], al
mov ecx, dword [esp + 0x10]
mov eax, dword [0x4bbd34]
inc ecx
test eax, eax
mov dword [esp + 0x10], ecx
je 0x474933
push 0x73
call dword [sym.imp.MSVCRT.dll_toupper]
mov edx, dword [esp + 0x14]
add esp, 4
mov byte [edx], al
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
jmp case.0x4746ec.24
mov edx, dword [esp + 0x10]
mov eax, 0x73
mov byte [edx], al
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
jmp case.0x4746ec.24
xor eax, eax
mov al, byte [ebp]
inc ebp
mov dword [0x4bbd14], eax
jmp 0x474973
mov eax, ebx
and eax, 7
mov dword [0x4bbd14], eax
jmp 0x474973
xor eax, eax
mov dword [0x4bbd14], eax
jmp 0x474973
mov eax, dword [0x4bbd14]
mov ecx, dword [0x4bbd34]
movsx eax, byte [eax*2 + str.alcldlblahchdhbhaxcxdxbxspbpsidi]
test ecx, ecx
je 0x47498f
push eax
call dword [sym.imp.MSVCRT.dll_toupper]
add esp, 4
mov ecx, dword [esp + 0x10]
mov byte [ecx], al
mov ecx, dword [esp + 0x10]
mov eax, dword [0x4bbd34]
inc ecx
test eax, eax
mov dword [esp + 0x10], ecx
je 0x4749d3
mov edx, dword [0x4bbd14]
movsx eax, byte [edx*2 + 0x4b5e51]
push eax
call dword [sym.imp.MSVCRT.dll_toupper]
mov edx, dword [esp + 0x14]
add esp, 4
mov byte [edx], al
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
jmp case.0x4746ec.24
mov ecx, dword [0x4bbd14]
mov edx, dword [esp + 0x10]
movsx eax, byte [ecx*2 + 0x4b5e51]
mov byte [edx], al
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
jmp case.0x4746ec.24
xor eax, eax
mov al, byte [ebp]
inc ebp
mov dword [0x4bbd14], eax
jmp case.0x4746ec.43
mov edx, dword [esp + 0x40]
mov eax, ebx
sub eax, edx
and eax, 7
mov dword [0x4bbd14], eax
jmp case.0x4746ec.41
mov dword [0x4bbd14], 0
mov eax, dword [0x4bbd08]
test eax, eax
je case.0x4746ec.43
mov eax, dword [0x4bbd34]
test eax, eax
je 0x474a3d
push 0x65
call dword [sym.imp.MSVCRT.dll_toupper]
add esp, 4
jmp 0x474a42
mov eax, 0x65
mov ecx, dword [esp + 0x10]
mov byte [ecx], al
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [0x4bbd34]
test eax, eax
je 0x474a74
mov edx, dword [0x4bbd14]
movsx eax, byte [edx*2 + 0x4b5e60]
push eax
call dword [sym.imp.MSVCRT.dll_toupper]
add esp, 4
jmp 0x474a82
mov ecx, dword [0x4bbd14]
movsx eax, byte [ecx*2 + 0x4b5e60]
mov edx, dword [esp + 0x10]
mov byte [edx], al
mov ecx, dword [esp + 0x10]
mov eax, dword [0x4bbd34]
inc ecx
test eax, eax
mov dword [esp + 0x10], ecx
je 0x474ac5
mov eax, dword [0x4bbd14]
movsx ecx, byte [eax*2 + 0x4b5e61]
push ecx
call dword [sym.imp.MSVCRT.dll_toupper]
mov ecx, dword [esp + 0x14]
add esp, 4
mov byte [ecx], al
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
jmp case.0x4746ec.24
mov edx, dword [0x4bbd14]
mov ecx, dword [esp + 0x10]
movsx eax, byte [edx*2 + 0x4b5e61]
mov byte [ecx], al
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
jmp case.0x4746ec.24
lea edx, [esp + 0x10]
push str.st_0__st
push edx
call fcn.00475c50
mov eax, dword [esp + 0x18]
mov cl, byte [0x4bbd18]
add esp, 8
add byte [eax - 5], cl
jmp case.0x4746ec.24
lea edx, [esp + 0x10]
push 0x4b5fbc
push edx
call fcn.00475c50
add esp, 8
lea eax, [esp + 0x10]
push str.st_0_
push eax
call fcn.00475c50
mov eax, dword [esp + 0x18]
mov cl, byte [0x4bbd18]
add esp, 8
add byte [eax - 2], cl
jmp case.0x4746ec.24
mov dword [0x4bbcf8], 1
mov dword [esp + 0x20], str.byte_ptr
jmp case.0x4746ec.24
mov eax, dword [0x4bbd08]
test eax, eax
jne case.0x4746ec.11
mov dword [0x4bbcf8], 2
mov dword [esp + 0x20], str.word_ptr
jmp case.0x4746ec.24
mov dword [0x4bbd08], 1
mov dword [0x4bbcf8], 4
mov dword [esp + 0x20], str.dword_ptr
jmp case.0x4746ec.24
mov dword [0x4bbcf8], 8
mov dword [esp + 0x20], str.qword_ptr
jmp case.0x4746ec.24
mov dword [0x4bbcf8], 0xa
mov dword [esp + 0x20], str.tbyte_ptr
jmp case.0x4746ec.24
mov eax, dword [0x4bbd08]
test eax, eax
je case.0x4746ec.11
mov dword [0x4bbcf8], 6
mov dword [esp + 0x20], str.fword_ptr
jmp case.0x4746ec.24
cmp dword [0x4bbd1c], 3
je 0x474c04
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x10]
push edx
push eax
call fcn.00475c50
add esp, 8
jmp case.0x4746ec.23
mov dword [0x4bbcf8], 0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x474c2b
mov ecx, dword [eax + eax*4 + 0x4b52e0]
lea edx, [esp + 0x10]
push ecx
push edx
call fcn.00475c50
add esp, 8
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x3b8]
push esi
push ecx
mov byte [eax], 0
call fcn.00475f40
lea edx, [esp + 0x3c0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00475c20
add esp, 0x10
jmp case.0x4746ec.24
mov ecx, dword [0x4bbd10]
push 2
add ecx, edi
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.00475b40
mov eax, dword [esp + 0x1c]
push 0
mov byte [eax], 0x3a
mov ecx, dword [esp + 0x20]
mov edx, dword [0x4bbd10]
inc ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
push ecx
push edi
lea eax, [esp + 0x28]
push edx
push eax
push esi
call fcn.00475ca0
mov ecx, dword [0x4bbd10]
add esp, 0x24
lea edx, [ecx + edi + 2]
mov dword [0x4bbd10], edx
jmp case.0x4746ec.24
cmp ebx, 0xe3
jne 0x474cdc
mov eax, dword [0x4bbd0c]
test eax, eax
je 0x474cdc
lea ecx, [esp + 0x18]
lea eax, [esp + 0x44]
push str.jecxz
push ecx
mov dword [esp + 0x20], eax
call fcn.00475c50
add esp, 8
mov eax, dword [0x4bbd10]
movsx edx, byte [eax]
mov dword [esp + 0x24], edx
inc eax
jmp 0x474d14
mov eax, dword [0x4bbd10]
push 4
lea ecx, [esp + 0x28]
push eax
push ecx
mov dword [esp + 0x30], 0
call dword [sym.imp.MSVCRT.dll_memmove]
mov eax, dword [0x4bbd10]
mov ecx, dword [esp + 0x40]
add esp, 0xc
add eax, ecx
mov edx, dword [esp + 0x5c8]
mov dword [0x4bbd10], eax
mov ecx, dword [edx]
lea edx, [esp + 0x60]
sub ecx, edx
mov edx, dword [esp + 0x24]
add ecx, eax
lea eax, [esp + 0x5c]
add edx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x34]
push eax
push ecx
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x1c]
push eax
push ecx
push esi
mov dword [esp + 0x74], 0
call fcn.00475ca0
add esp, 0x18
test eax, eax
je 0x474d6e
mov eax, dword [esp + 0x5c]
test eax, eax
je case.0x4746ec.24
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x78]
lea eax, [esp + 0x2b4]
push edx
push eax
push ecx
call fcn.004760e0
add esp, 0xc
test eax, eax
je 0x474e03
mov eax, dword [0x4b5ef4]
test eax, eax
je 0x474dbf
mov edx, dword [esp + 0x78]
lea eax, [esp + 0x2b4]
push edx
push eax
push str._s___08X_
lea ecx, [esp + 0xb8]
push 0x208
push ecx
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x14
jmp 0x474de2
lea edx, [esp + 0x2b4]
lea eax, [esp + 0xac]
push edx
push 0x4a1a40
push 0x208
push eax
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x10
lea edi, [esp + 0xac]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ecx, [esp + ecx + 0xac]
mov dword [esp + 0x10], ecx
jmp 0x474729
mov eax, dword [0x4bbd2c]
test eax, eax
jne case.0x4746ec.24
cmp ebx, 0xe8
jne case.0x4746ec.24
mov eax, dword [esi + 0x2e8]
test eax, eax
je case.0x4746ec.24
mov ecx, dword [eax + 0x228]
test ecx, ecx
je case.0x4746ec.24
mov ecx, dword [eax + 0x22c]
mov edx, dword [eax + 4]
add ecx, edx
mov edx, dword [esp + 0x24]
cmp edx, ecx
jb case.0x4746ec.24
mov eax, dword [eax + 0x230]
add eax, ecx
cmp edx, eax
jae case.0x4746ec.24
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
push edx
lea ecx, [esp + 0xa0]
push str.sub__08X
push ecx
call edi
mov eax, dword [0x4b5ef4]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x24]
push eax
je 0x474e9b
push eax
lea edx, [esp + 0xb4]
push str.sub__08X___08X_
push edx
call edi
add esp, 0x10
jmp 0x474ead
lea ecx, [esp + 0xb0]
push str.sub__08X
push ecx
call edi
add esp, 0xc
lea edi, [esp + 0xac]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push eax
lea eax, [esp + 0xa0]
lea edx, [esp + ecx + 0xb0]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edx
mov edx, dword [esi + 0x2e8]
push eax
push ecx
mov ecx, dword [0x4ba864]
push edx
call fcn.00428610
jmp 0x474729
mov eax, dword [0x4bbd10]
push 1
lea ecx, [esp + 0x14]
push eax
push ecx
call fcn.00475b40
mov eax, dword [0x4bbd10]
add esp, 0xc
inc eax
mov dword [0x4bbd10], eax
jmp case.0x4746ec.24
mov edi, 1
jmp 0x474f1f
mov edi, 2
mov dword [esp + 0x1c], edi
cmp ebx, 0x6a
jne 0x474f40
cmp edi, 1
jne 0x474f40
mov edx, dword [0x4bbd10]
cmp byte [edx], 0x80
jb 0x474f40
mov dword [esp + 0x20], str.dword_ptr
mov eax, dword [esp + 0x20]
mov ecx, dword [0x4bbd10]
push eax
push 0
push edi
lea edx, [esp + 0x1c]
push ecx
push edx
call fcn.004759d0
mov eax, dword [0x4bbd2c]
add esp, 0x14
test eax, eax
jne 0x474f9e
mov eax, dword [0x4bbd10]
cmp edi, 1
mov eax, dword [eax]
jne 0x474f78
and eax, 0xff
jmp 0x474f82
cmp edi, 2
jne 0x474f82
and eax, 0xffff
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0xac]
push eax
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
call fcn.0042a630
add esp, 0xc
add dword [0x4bbd10], edi
jmp case.0x4746ec.24
test bl, 1
mov dword [0x4bbcf8], edi
jne 0x474fbe
mov dword [0x4bbcf8], 1
mov eax, dword [esp + 0x28]
test eax, eax
je 0x474fdb
mov ecx, dword [eax + eax*4 + 0x4b52e0]
lea edx, [esp + 0x10]
push ecx
push edx
call fcn.00475c50
add esp, 8
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
push 0
mov byte [eax], 0x5b
mov ecx, dword [esp + 0x14]
mov eax, dword [0x4bbd10]
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x1c]
push eax
push ecx
push esi
call fcn.00475ca0
mov edx, dword [esp + 0x4c]
mov ecx, dword [0x4bbd10]
mov eax, dword [esp + 0x28]
add ecx, edx
mov dword [0x4bbd10], ecx
add esp, 0x18
mov byte [eax], 0x5d
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
jmp case.0x4746ec.24
mov edx, dword [0x4bbd14]
xor ecx, ecx
mov cl, byte [ebp]
inc ebp
lea eax, [edx + ecx*8]
lea ecx, [esp + 0x18]
mov eax, dword [eax*4 + 0x4b59f0]
push eax
push ecx
call fcn.00475c50
add esp, 8
jmp case.0x4746ec.24
xor edx, edx
mov dl, byte [ebp]
mov esi, edx
jmp 0x4750b9
mov eax, dword [0x4bbd1c]
mov esi, ebx
and esi, 7
shl esi, 1
cmp eax, 3
jne 0x4750b9
inc esi
cmp esi, 3
jne 0x475093
mov eax, dword [0x4bbd14]
cmp eax, esi
jle 0x4750b9
lea esi, [eax + 0xc]
mov eax, dword [0x4bbd18]
mov dword [0x4bbd14], eax
jmp 0x4750b9
cmp esi, 7
jne 0x4750b9
cmp dword [0x4bbd14], 4
jne 0x4750af
mov ecx, dword [0x4bbd18]
mov dword [0x4bbd14], ecx
jmp 0x4750b9
mov dword [0x4bbd14], 7
mov edx, dword [0x4bbd14]
lea ecx, [esp + 0x18]
lea eax, [edx + esi*8]
mov eax, dword [eax + eax*4 + 0x4b5a90]
push eax
push ecx
call fcn.00475c50
mov edx, dword [0x4bbd14]
xor ecx, ecx
add esp, 8
lea eax, [edx + esi*8]
mov cl, byte [eax + eax*4 + 0x4b5a94]
mov ebp, ecx
add ebp, 0x4b51ec
jmp 0x474722
mov eax, dword [0x4bbd10]
xor ebx, ebx
mov bl, byte [eax]
inc eax
cmp ebx, 0xbf
mov dword [0x4bbd10], eax
je 0x47511f
cmp ebx, 0xb7
mov dword [0x4bbcec], 0
jne 0x475129
mov dword [0x4bbcec], 1
cmp ebx, 7
jge 0x475139
add ebx, 0x100
jmp 0x4752b8
cmp ebx, 0x1f
jle 0x47514e
cmp ebx, 0x27
jge 0x47514e
add ebx, 0xe7
jmp 0x4752b8
cmp ebx, 0x2f
jle 0x475163
cmp ebx, 0x33
jge 0x475163
add ebx, 0xde
jmp 0x4752b8
cmp ebx, 0x7e
jle 0x4751dc
cmp ebx, 0xd0
jge 0x4751dc
cmp ebx, 0xb0
jl 0x47518b
cmp ebx, 0xb1
jg 0x47518b
add ebx, 0xb7
jmp 0x4752b8
cmp ebx, 0xc8
jl 0x4751ae
cmp ebx, 0xcf
jg 0x4751ae
add ebx, 0x94
mov dword [esp + 0x40], 0x94
jmp 0x4752b8
cmp ebx, 0xa0
jl 0x4751d1
cmp ebx, 0xa1
jg 0x4751d1
add ebx, 0x94
mov dword [esp + 0x40], 0x94
jmp 0x4752b8
add ebx, 0x94
jmp 0x4752b8
cmp ebx, 0x33
jl 0x4751f1
cmp ebx, 0x35
jg 0x4751f1
add ebx, 0x131
jmp 0x4752b8
mov ebx, 0x104
jmp 0x4752b8
mov ecx, dword [0x4b5ef0]
xor eax, eax
test ecx, ecx
sete al
mov dword [0x4bbd0c], eax
lea edx, [eax + eax + 2]
mov dword [esp + 0x34], edx
jmp 0x4752a9
mov ecx, dword [0x4b5ef0]
xor eax, eax
test ecx, ecx
sete al
mov dword [0x4bbd08], eax
lea edi, [eax + eax + 2]
mov dword [esp + 0x1c], edi
jmp 0x4752a9
lea eax, [esp + 0x44]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], eax
jmp 0x4752a9
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x7c]
mov byte [ecx], 0
mov edx, dword [esp + 0x2c]
cmp edx, eax
je 0x475270
mov ecx, edx
lea eax, [esp + 0x7c]
sub ecx, eax
cmp ecx, 0x1f
jae 0x475270
mov byte [edx], 0x20
mov edx, dword [esp + 0x2c]
inc edx
mov dword [esp + 0x2c], edx
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [esp + 0x7c]
dec ecx
sub edx, eax
add ecx, edx
cmp ecx, 0x1f
jae 0x47529d
lea ecx, [esp + 0x44]
lea edx, [esp + 0x2c]
push ecx
push edx
call fcn.00475c20
add esp, 8
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [0x4bbd10]
xor ebx, ebx
mov bl, byte [eax]
inc eax
mov dword [0x4bbd10], eax
mov edx, dword [ebx + ebx*4 + 0x4b52e0]
xor ecx, ecx
mov cl, byte [ebx + ebx*4 + 0x4b52e4]
lea eax, [esp + 0x18]
mov ebp, ecx
push edx
push eax
add ebp, 0x4b51ec
call fcn.00475c50
add esp, 8
jmp case.0x4746ec.24
mov ecx, dword [esp + 0x10]
mov byte [ecx], 0x2c
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
jmp 0x4746d2
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x4746d2
mov edx, dword [esp + 0x5d0]
mov eax, dword [esp + 0x28]
push edx
lea ecx, [esp + 0x74]
push eax
push ecx
push esi
call fcn.00475640
add esp, 0x10
mov dword [esp + 0x54], 1
jmp 0x4746d2
mov esi, dword [0x4bbd10]
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x60]
sub esi, edx
cmp esi, eax
jge 0x475346
mov eax, esi
mov dword [esp + 0x3c], eax
push eax
lea eax, [esp + 0x64]
lea ecx, [esp + 0x18]
push eax
push ecx
call fcn.00475ba0
mov eax, dword [esp + 0x48]
add esp, 0xc
cmp esi, eax
jle 0x47538b
mov edx, dword [esp + 0x14]
mov byte [edx], 0x3f
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
mov byte [eax], 0x3f
mov eax, dword [esp + 0x5c8]
mov ebx, dword [esp + 0x14]
mov ecx, dword [eax]
inc ebx
inc ecx
mov dword [esp + 0x14], ebx
mov dword [eax], ecx
jmp 0x475396
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x5c8]
mov ecx, dword [eax]
add ecx, esi
mov dword [eax], ecx
mov eax, dword [esp + 0x3c]
cmp esi, eax
jle 0x4753e4
mov eax, dword [esp + 0x5cc]
add eax, 0x20
mov byte [ebx], 0x20
mov ebx, dword [esp + 0x14]
inc ebx
cmp ebx, eax
mov dword [esp + 0x14], ebx
jb 0x4753ae
lea ecx, [esp + 0x14]
push 0x4a173c
push ecx
call fcn.00475c20
mov edx, dword [esp + 0x1c]
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
mov byte [edx], 0
pop ebx
add esp, 0x5b0
ret
mov ecx, dword [esp + 0x5cc]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov eax, ebx
mov edi, dword [esp + 0x2c]
sub eax, ecx
lea ecx, [esp + 0xac]
sub edx, ecx
lea ecx, [esp + 0x44]
sub esi, ecx
lea ecx, [esp + 0x7c]
cmp edi, ecx
je 0x475425
xor ecx, ecx
test edx, edx
setne cl
add ecx, esi
add edx, ecx
lea ecx, [esp + 0x7c]
sub edi, ecx
mov esi, edi
lea ecx, [esi + edx]
xor edi, edi
cmp ecx, 0x3e7
jle 0x47543d
inc esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], esi
jmp 0x4754b2
xor ecx, ecx
lea ebp, [eax + 1]
test edi, edi
setne cl
mov eax, 0x3e8
sub eax, ecx
xor ecx, ecx
sub eax, edi
sub eax, edx
test edx, edx
setne cl
mov edi, ecx
mov ecx, eax
sub ecx, esi
sub ecx, edi
cmp ebp, ecx
jle 0x475496
mov eax, 0x3e8
mov dword [esp + 0x58], 1
sub eax, edx
mov ecx, eax
sub ecx, esi
sub ecx, edi
cmp ecx, 0x20
jge 0x475483
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x30]
lea esi, [esi + edx + 1]
cmp esi, 0x2c
jle 0x4754a1
mov dword [esp + 0x38], esi
jmp 0x4754aa
cmp ebp, 0x20
jle 0x47547a
mov dword [esp + 0x30], ebp
jmp 0x475483
cmp eax, 0x2c
jge 0x4754aa
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4754b9
mov dword [esp + 0x5cc], ebx
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x5cc]
add eax, esi
mov byte [ebx], 0x20
mov ebx, dword [esp + 0x14]
inc ebx
cmp ebx, eax
mov dword [esp + 0x14], ebx
jb 0x4754c6
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x7c]
cmp eax, ecx
je 0x475511
mov byte [eax], 0
lea edx, [esp + 0x7c]
lea eax, [esp + 0x14]
push edx
push eax
call fcn.00475c20
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
add esp, 8
add ecx, esi
mov byte [eax], 0x20
mov eax, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x475501
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x44]
lea ecx, [esp + 0x14]
push eax
push ecx
mov byte [edx], 0
call fcn.00475c20
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xb4]
add esp, 8
cmp eax, edx
je 0x475570
mov eax, dword [esp + 0x38]
lea ecx, [eax + esi]
mov eax, dword [esp + 0x14]
mov byte [eax], 0x20
mov eax, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x475544
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0xac]
lea eax, [esp + 0x14]
push edx
push eax
mov byte [ecx], 0
call fcn.00475c20
add esp, 8
mov ecx, dword [esp + 0x14]
pop edi
pop esi
pop ebp
mov byte [ecx], 0
mov eax, 1
pop ebx
add esp, 0x5b0
ret