Function at 0x4755c0
Capabilities:
Check if file exists
Get file attributes
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4f87d4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x524
push ebx
push ebp
push esi
mov esi, dword [esp + 0x540]
mov ebx, ecx
push edi
push esi
lea ecx, [esp + 0x20]
call fcn.004c6628
xor ebp, ebp
push esi
lea ecx, [esp + 0x14]
mov dword [esp + 0x540], ebp
call fcn.004c6628
mov byte [esp + 0x53c], 1
mov eax, dword [esp + 0x10]
mov byte [esp + 0x23], 0
cmp dword [eax - 8], ebp
jne 0x47562a
mov al, byte [esp + 0x548]
test al, al
je 0x4763ed
mov ecx, dword [esp + 0x1c]
cmp dword [ecx - 8], ebp
jne 0x475733
push ebp
lea ecx, [esp + 0x114]
call fcn.00419940
mov edx, dword [0x5a4404]
mov dword [esp + 0x2c], edx
push str.UnitInfoPath
push str.SOFTWAREKEYENCEKVB
lea eax, [esp + 0x8c]
push SysReAllocString
push eax
mov ecx, ebx
mov byte [esp + 0x54c], 3
call fcn.00476850
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x540], 4
call fcn.004c66f3
lea ecx, [esp + 0x84]
mov byte [esp + 0x53c], 3
call fcn.004c65ba
mov ecx, dword [esp + 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4756b8
push str.C:Program_FilesKeyence
lea ecx, [esp + 0x30]
call fcn.004c6743
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x170]
push edx
call fcn.004c66f3
lea ecx, [esp + 0x110]
call fcn.004c5ee5
cmp eax, 1
jne 0x4761ca
mov al, byte [esp + 0x16c]
lea ecx, [esp + 0x170]
push ecx
lea ecx, [esp + 0x14]
mov byte [esp + 0x27], al
call fcn.004c66f3
lea ecx, [esp + 0x2c]
mov byte [esp + 0x53c], 2
call fcn.004c65ba
lea ecx, [esp + 0x170]
mov byte [esp + 0x53c], 6
call fcn.004c65ba
lea ecx, [esp + 0x110]
mov byte [esp + 0x53c], 1
call fcn.004c5a2b
lea edx, [esp + 0x10]
lea ecx, [ebx + 0x198]
push edx
call fcn.004c66f3
mov al, byte [esp + 0x23]
mov dword [esp + 0x14], ebp
test al, al
mov dword [esp + 0x24], ebp
mov dword [esp + 0x38], ebp
je 0x4759a1
lea ecx, [esp + 0x10]
call fcn.004c6545
call fcn.004e4e26
mov ecx, dword [eax + 4]
call fcn.004cb5f7
mov eax, dword [0x5ad660]
mov ecx, dword [0x5ad65c]
push ebp
push eax
push ecx
push 0x54b528
lea ecx, [esp + 0x184]
mov byte [esp + 0x54c], 7
call fcn.00401d40
lea ecx, [esp + 0x174]
mov byte [esp + 0x53c], 8
call fcn.004c5ee5
cmp eax, 1
je 0x475847
lea ecx, [esp + 0x2dc]
mov byte [esp + 0x53c], 0xd
call fcn.004c2cfa
lea ecx, [esp + 0x2d8]
mov byte [esp + 0x53c], 0xc
call fcn.004c65ba
lea ecx, [esp + 0x2a0]
mov byte [esp + 0x53c], 0xb
call fcn.004c65ba
lea ecx, [esp + 0x29c]
mov byte [esp + 0x53c], 0xa
call fcn.004c65ba
lea ecx, [esp + 0x23c]
mov byte [esp + 0x53c], 9
call fcn.004c5a2b
lea ecx, [esp + 0x174]
mov byte [esp + 0x53c], 7
call fcn.004c5a2b
mov byte [esp + 0x53c], 1
call fcn.004e4e26
mov ecx, dword [eax + 4]
call fcn.004cb60c
jmp 0x47560d
mov eax, dword [ebx + 0xd8]
mov ecx, 3
cmp eax, 1
mov dword [esp + 0x28], ecx
je 0x47585f
cmp eax, ebp
jne 0x475868
mov ecx, 0xa
mov dword [esp + 0x28], ecx
lea edx, [esp + 0x14]
push edx
push ecx
call fcn.0049a63c
add esp, 8
test eax, eax
jne 0x476208
mov eax, dword [esp + 0x1fc]
cmp eax, ebp
mov dword [esp + 0x38], eax
jbe 0x4758c4
push eax
call fcn.004c62f5
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1fc]
mov dword [esp + 0x28], eax
mov edi, eax
mov eax, ecx
mov esi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add esp, 4
and ecx, 3
cmp edx, ebp
rep movsb byte es:[edi], byte [esi]
je 0x4758c4
push edx
call fcn.004c631e
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
push ecx
push edx
push esi
push eax
call fcn.0049a62a
add esp, 0x10
test eax, eax
jne 0x4762ce
lea ecx, [esp + 0x2dc]
mov byte [esp + 0x53c], 0x1c
call fcn.004c2cfa
lea ecx, [esp + 0x2d8]
mov byte [esp + 0x53c], 0x1b
call fcn.004c65ba
lea ecx, [esp + 0x2a0]
mov byte [esp + 0x53c], 0x1a
call fcn.004c65ba
lea ecx, [esp + 0x29c]
mov byte [esp + 0x53c], 0x19
call fcn.004c65ba
lea ecx, [esp + 0x23c]
mov byte [esp + 0x53c], 0x18
call fcn.004c5a2b
lea ecx, [esp + 0x174]
mov byte [esp + 0x53c], 7
call fcn.004c5a2b
mov byte [esp + 0x53c], 1
call fcn.004e4e26
mov ecx, dword [eax + 4]
call fcn.004cb60c
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
call dword [edx + 0x34]
mov ecx, dword [esp + 0x14]
mov esi, 1
cmp eax, esi
jne 0x475b70
mov eax, dword [ecx]
call dword [eax]
and eax, 0xffff
mov dword [esp + 0x58], eax
jmp 0x475bd5
lea ecx, [esp + 0x6c]
push 1
push ecx
lea ecx, [esp + 0x18]
call fcn.004bfb75
mov eax, dword [eax]
push 0x59d468
push eax
call fcn.004a629c
add esp, 8
lea ecx, [esp + 0x6c]
test eax, eax
setne byte [esp + 0x1b]
call fcn.004c65ba
mov al, byte [esp + 0x1b]
test al, al
je 0x4759e4
push 0x5c
lea ecx, [esp + 0x14]
call fcn.004c69bd
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x318]
lea edx, [esp + 0x318]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x10]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x318]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.UnitSet.ue2
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x41c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x31c]
push ecx
call fcn.004cd250
test eax, eax
jne 0x475abb
mov edi, dword [esp + 0x10]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x318]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x318]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.UnitSet.Inf
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x318]
push eax
push ecx
call fcn.0049a618
add esp, 8
test eax, eax
jne 0x4763af
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x318]
push edx
push eax
call fcn.0049a606
add esp, 8
test eax, eax
je 0x475975
cmp dword [esp + 0x14], ebp
je 0x475b08
lea ecx, [esp + 0x14]
push ecx
call fcn.0049a5f4
add esp, 4
mov edx, dword [0x5a4404]
mov dword [esp + 0x3c], edx
mov ecx, dword [0x5ad64c]
lea eax, [esp + 0x318]
push eax
lea edx, [esp + 0x40]
push ecx
push edx
mov byte [esp + 0x548], 0x1d
call fcn.004c0067
mov eax, dword [esp + 0x48]
add esp, 0xc
push ebp
push ebp
push eax
call fcn.004d47fc
lea ecx, [esp + 0x10]
call fcn.004c6545
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x53c], 1
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x3c]
cmp eax, ebp
jne 0x4763e8
call fcn.004c65ba
jmp 0x47560d
mov edx, dword [ecx]
call dword [edx + 0x34]
cmp eax, 5
jne 0x475bd1
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
call dword [eax + 8]
cmp eax, ebp
mov dword [esp + 0x70], eax
jg 0x475c16
mov ecx, dword [0x5ad654]
push ebp
push ebp
push ecx
call fcn.004d47fc
lea edx, [esp + 0x14]
push edx
call fcn.0049a5f4
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, ebp
je 0x475bbf
push eax
call fcn.004c631e
add esp, 4
mov eax, dword [esp + 0x1c]
cmp dword [eax - 8], ebp
jne 0x4763ed
jmp 0x47560d
mov eax, dword [esp + 0x58]
cmp eax, ebp
jne 0x475b7e
mov eax, dword [0x5ad658]
push ebp
push ebp
push eax
call fcn.004d47fc
lea ecx, [esp + 0x14]
push ecx
call fcn.0049a5f4
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, ebp
je 0x475c04
push eax
call fcn.004c631e
add esp, 4
mov edx, dword [esp + 0x1c]
cmp dword [edx - 8], ebp
jne 0x4763ed
jmp 0x47560d
cmp eax, ebp
mov dword [esp + 0x64], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov byte [esp + 0x1b], 0
mov dword [esp + 0x30], ebp
jle 0x47619f
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x40]
push eax
mov eax, dword [esp + 0x34]
mov edx, dword [ecx]
push eax
call dword [edx + 0xc]
test eax, eax
je 0x476142
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
call dword [edx]
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x74]
push edx
mov esi, eax
mov eax, dword [ecx]
lea edx, [esp + 0x7c]
push edx
call dword [eax + 8]
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x80]
push edx
lea edx, [esp + 0x6c]
mov eax, dword [ecx]
push edx
call dword [eax + 0xc]
mov eax, dword [0x5a4404]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x10c], eax
push 0x5a9438
lea ecx, [esp + 0xa8]
mov byte [esp + 0x540], 0x20
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
mov word [esp + 0x94], bp
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], ebp
mov dword [esp + 0xa4], ebp
call fcn.004c6743
mov ecx, 0x14
xor eax, eax
lea edi, [esp + 0xa8]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov dword [esp + 0x100], ebp
mov dword [esp + 0x104], ebp
mov dword [esp + 0x108], 1
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x53c], 0x21
mov eax, dword [ecx]
call dword [eax + 0x34]
cmp eax, 5
jne 0x475d38
mov ecx, dword [esp + 0x30]
dec ecx
mov dword [esp + 0x88], ecx
jmp 0x475d43
mov edx, dword [esp + 0x30]
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x80]
cmp si, 0x8a
mov dword [esp + 0x8c], 0xffffffff
mov word [esp + 0x90], si
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], eax
je 0x475da1
cmp si, 0x92
je 0x475da1
cmp si, 0x90
je 0x475da1
cmp si, 0x91
jne 0x475da6
mov byte [esp + 0x1b], 1
cmp si, 0x8a
jne 0x475dbf
mov eax, dword [esp + 0x64]
mov dword [esp + 0x8c], eax
inc eax
mov dword [esp + 0x64], eax
jmp 0x475e08
cmp si, 0x90
jne 0x475dd8
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x8c], eax
inc eax
mov dword [esp + 0x4c], eax
jmp 0x475e08
cmp si, 0x91
jne 0x475df1
mov eax, dword [esp + 0x50]
mov dword [esp + 0x8c], eax
inc eax
mov dword [esp + 0x50], eax
jmp 0x475e08
cmp si, 0x92
jne 0x475e08
mov eax, dword [esp + 0x54]
mov dword [esp + 0x8c], eax
inc eax
mov dword [esp + 0x54], eax
mov ecx, dword [0x5a4404]
mov dword [esp + 0x48], ecx
lea edx, [ebx + 0xdc]
push str.Dllinfo.ini
lea eax, [esp + 0x80]
push edx
push eax
mov byte [esp + 0x548], 0x22
call fcn.004c684f
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x540], 0x23
call fcn.004c66f3
lea ecx, [esp + 0x7c]
mov byte [esp + 0x53c], 0x22
call fcn.004c65ba
mov ecx, dword [0x5a4404]
mov dword [esp + 0x44], ecx
and esi, 0xffff
lea edx, [esp + 0x44]
push esi
push str._04X
push edx
mov byte [esp + 0x548], 0x24
call fcn.004c0067
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
add esp, 0xc
lea ecx, [esp + 0xa4]
push eax
push 0x100
push 0x100
call fcn.004c69ea
push eax
push 0x5a9438
push str.UnitName
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0xffffffffffffffff
lea ecx, [esp + 0xa8]
call fcn.004c6a39
cmp dword [esp + 0x88], ebp
jl 0x4760e2
mov ecx, dword [ebx + 0x180]
mov esi, ecx
mov dword [esp + 0x5c], esi
lea ebp, [esi + 1]
test ebp, ebp
jne 0x475f32
mov ebp, dword [ebx + 0x17c]
test ebp, ebp
je 0x475f1f
mov edx, ecx
dec ecx
test edx, edx
je 0x475f06
lea edi, [ecx + 1]
push 0
mov ecx, ebp
call fcn.00485f70
add ebp, 0x88
dec edi
jne 0x475ef4
mov eax, dword [ebx + 0x17c]
push eax
call fcn.004c631e
add esp, 4
mov dword [ebx + 0x17c], 0
xor eax, eax
mov dword [ebx + 0x184], eax
mov dword [ebx + 0x180], eax
jmp 0x4760c3
mov eax, dword [ebx + 0x17c]
test eax, eax
jne 0x475fb1
mov esi, ebp
shl esi, 4
add esi, ebp
shl esi, 3
push esi
call fcn.004c62f5
mov ecx, esi
mov edi, eax
mov edx, ecx
xor eax, eax
shr ecx, 2
mov dword [ebx + 0x17c], edi
mov dword [esp + 0x2c], edi
rep stosd dword es:[edi], eax
mov esi, dword [esp + 0x2c]
mov ecx, edx
add esp, 4
and ecx, 3
rep stosb byte es:[edi], al
lea edi, [ebp]
mov dword [esp + 0x60], esi
test esi, esi
mov byte [esp + 0x53c], 0x25
je 0x475f8b
mov ecx, esi
call fcn.004764e0
add esi, 0x88
dec edi
mov byte [esp + 0x53c], 0x24
mov dword [esp + 0x28], esi
jne 0x475f74
mov dword [ebx + 0x184], ebp
mov dword [ebx + 0x180], ebp
jmp 0x4760bf
mov edi, dword [ebx + 0x184]
cmp ebp, edi
jg 0x475fff
cmp ecx, ebp
jge 0x475fdf
mov edx, ebp
sub edx, ecx
push edx
mov edx, ecx
shl edx, 4
add edx, ecx
lea eax, [eax + edx*8]
push eax
call fcn.00485f90
mov dword [ebx + 0x180], ebp
jmp 0x4760c3
jle 0x475ff4
sub ecx, ebp
push ecx
mov ecx, ebp
shl ecx, 4
add ecx, ebp
lea edx, [eax + ecx*8]
push edx
call fcn.00485ea0
mov dword [ebx + 0x180], ebp
jmp 0x4760c3
mov eax, dword [ebx + 0x188]
test eax, eax
jne 0x47602c
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x476020
mov eax, 4
jmp 0x47602c
cmp eax, 0x400
jle 0x47602c
mov eax, 0x400
add eax, edi
cmp ebp, eax
mov dword [esp + 0x28], eax
jl 0x47603a
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x28]
mov ecx, eax
shl ecx, 4
add ecx, eax
shl ecx, 3
push ecx
call fcn.004c62f5
mov edx, dword [ebx + 0x180]
mov esi, dword [ebx + 0x17c]
mov ecx, edx
mov edi, eax
shl ecx, 4
add ecx, edx
add esp, 4
shl ecx, 3
mov edx, ecx
mov dword [esp + 0x60], eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x180]
sub edx, ecx
push edx
mov edx, ecx
shl edx, 4
add edx, ecx
lea eax, [eax + edx*8]
push eax
call fcn.00485f90
mov eax, dword [ebx + 0x17c]
push eax
call fcn.004c631e
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x2c]
add esp, 4
mov dword [ebx + 0x17c], ecx
mov dword [ebx + 0x180], ebp
mov dword [ebx + 0x184], edx
mov esi, dword [esp + 0x5c]
mov edx, dword [ebx + 0x17c]
mov ecx, esi
shl ecx, 4
add ecx, esi
lea eax, [esp + 0x88]
push eax
lea ecx, [edx + ecx*8]
call fcn.00485ed0
xor ebp, ebp
lea ecx, [esp + 0x44]
mov byte [esp + 0x53c], 0x22
call fcn.004c65ba
lea ecx, [esp + 0x48]
mov byte [esp + 0x53c], 0x21
call fcn.004c65ba
lea ecx, [esp + 0x10c]
mov byte [esp + 0x53c], 0x27
call fcn.004c65ba
lea ecx, [esp + 0xfc]
mov byte [esp + 0x53c], 0x26
call fcn.004c65ba
lea ecx, [esp + 0xa4]
mov byte [esp + 0x53c], 1
call fcn.004c65ba
jmp 0x47617e
mov eax, dword [0x5ad650]
push ebp
push ebp
push eax
call fcn.004d47fc
lea ecx, [esp + 0x14]
push ecx
call fcn.0049a5f4
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, ebp
je 0x476171
push eax
call fcn.004c631e
add esp, 4
mov dword [esp + 0x24], ebp
mov edx, dword [esp + 0x1c]
cmp dword [edx - 8], ebp
jne 0x4763ed
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x70]
inc eax
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x475c37
mov al, byte [esp + 0x1b]
test al, al
jne 0x476419
mov eax, dword [0x5ad654]
push ebp
push ebp
push eax
call fcn.004d47fc
lea ecx, [esp + 0x14]
push ecx
call fcn.0049a5f4
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, ebp
je 0x475c04
jmp 0x475bfb
lea ecx, [esp + 0x2c]
mov byte [esp + 0x53c], 2
call fcn.004c65ba
lea ecx, [esp + 0x170]
mov byte [esp + 0x53c], 5
call fcn.004c65ba
lea ecx, [esp + 0x110]
mov byte [esp + 0x53c], 1
call fcn.004c5a2b
jmp 0x4763ed
mov eax, dword [0x5ad670]
push ebp
push ebp
push eax
call fcn.004d47fc
lea ecx, [esp + 0x2dc]
mov byte [esp + 0x53c], 0x12
call fcn.004c2cfa
lea ecx, [esp + 0x2d8]
mov byte [esp + 0x53c], 0x11
call fcn.004c65ba
lea ecx, [esp + 0x2a0]
mov byte [esp + 0x53c], 0x10
call fcn.004c65ba
lea ecx, [esp + 0x29c]
mov byte [esp + 0x53c], 0xf
call fcn.004c65ba
lea ecx, [esp + 0x23c]
mov byte [esp + 0x53c], 0xe
call fcn.004c5a2b
lea ecx, [esp + 0x174]
mov byte [esp + 0x53c], 7
call fcn.004c5a2b
mov byte [esp + 0x53c], 1
call fcn.004e4e26
mov ecx, dword [eax + 4]
call fcn.004cb60c
lea ecx, [esp + 0x10]
mov byte [esp + 0x53c], 0
call fcn.004c65ba
lea ecx, [esp + 0x1c]
mov dword [esp + 0x53c], 0xffffffff
call fcn.004c65ba
xor eax, eax
jmp 0x4764c2
mov ecx, dword [0x5ad668]
push ebp
push ebp
push ecx
call fcn.004d47fc
lea edx, [esp + 0x14]
push edx
call fcn.0049a5f4
add esp, 4
cmp esi, ebp
je 0x4762f6
push esi
call fcn.004c631e
add esp, 4
lea ecx, [esp + 0x2dc]
mov byte [esp + 0x53c], 0x17
call fcn.004c2cfa
lea ecx, [esp + 0x2d8]
mov byte [esp + 0x53c], 0x16
call fcn.004c65ba
lea ecx, [esp + 0x2a0]
mov byte [esp + 0x53c], 0x15
call fcn.004c65ba
lea ecx, [esp + 0x29c]
mov byte [esp + 0x53c], 0x14
call fcn.004c65ba
lea ecx, [esp + 0x23c]
mov byte [esp + 0x53c], 0x13
call fcn.004c5a2b
lea ecx, [esp + 0x174]
mov byte [esp + 0x53c], 7
call fcn.004c5a2b
mov byte [esp + 0x53c], 1
call fcn.004e4e26
mov ecx, dword [eax + 4]
call fcn.004cb60c
lea ecx, [esp + 0x10]
mov byte [esp + 0x53c], 0
call fcn.004c65ba
lea ecx, [esp + 0x1c]
mov dword [esp + 0x53c], 0xffffffff
call fcn.004c65ba
xor eax, eax
jmp 0x4764c2
mov eax, dword [0x5ad670]
push ebp
push ebp
push eax
call fcn.004d47fc
lea ecx, [esp + 0x10]
mov byte [esp + 0x53c], 0
call fcn.004c65ba
lea ecx, [esp + 0x1c]
mov dword [esp + 0x53c], 0xffffffff
call fcn.004c65ba
xor eax, eax
jmp 0x4764c2
call fcn.004c65ba
lea ecx, [esp + 0x10]
mov byte [esp + 0x53c], 0
call fcn.004c65ba
lea ecx, [esp + 0x1c]
mov dword [esp + 0x53c], 0xffffffff
call fcn.004c65ba
xor eax, eax
jmp 0x4764c2
mov al, byte [esp + 0x23]
mov dword [esp + 0x34], ebp
test al, al
je 0x47643d
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x38]
push esi
push edx
mov ecx, ebx
call fcn.004765e0
jmp 0x476452
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x34]
push eax
push ecx
mov ecx, ebx
call fcn.00476640
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
mov ecx, ebx
push edx
call fcn.00476780
cmp dword [esp + 0x14], ebp
je 0x476471
lea eax, [esp + 0x14]
push eax
call fcn.0049a5f4
add esp, 4
cmp dword [esp + 0x34], ebp
je 0x476484
lea ecx, [esp + 0x34]
push ecx
call fcn.0049a5e2
add esp, 4
cmp esi, ebp
je 0x476491
push esi
call fcn.004c631e
add esp, 4
mov ecx, ebx
call fcn.00476840
lea ecx, [esp + 0x10]
mov byte [esp + 0x53c], 0
call fcn.004c65ba
lea ecx, [esp + 0x1c]
mov dword [esp + 0x53c], 0xffffffff
call fcn.004c65ba
mov eax, 1
mov ecx, dword [esp + 0x534]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x530
ret 8