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

Disassembly:
sub esp, 0x144
mov eax, dword [0x4fa5ac]
xor eax, esp
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x14c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x160]
push edi
mov edi, dword [esp + 0x158]
xor ebp, ebp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ebp
mov byte [esp + 0x20], 0
cmp edi, ebp
je 0x4710f1
mov ecx, str.ICUDATA
mov eax, edi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4710c0
test dl, dl
je 0x4710bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4710c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4710a0
xor eax, eax
jmp 0x4710c5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
je 0x4710f1
push 9
push str.icudt46l_
push edi
call fcn.0044e56c
add esp, 0xc
test eax, eax
je 0x4710f1
push 8
push str.ICUDATA_
push edi
call fcn.0044e56c
add esp, 0xc
test eax, eax
jne 0x4710f6
mov byte [esp + 0x20], 1
lea ecx, [esp + 0x121]
mov ebx, 0x28
mov dword [esp + 0x118], ecx
mov dword [esp + 0x11c], ebx
mov byte [esp + 0x120], 0
mov dword [esp + 0x14c], ebp
mov byte [esp + 0x121], 0
cmp edi, ebp
je 0x471191
push 0x2f
push edi
call fcn.004554a0
add esp, 8
test eax, eax
je 0x471191
push edi
lea ecx, [esp + 0x14]
call fcn.004010b0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push esi
push edx
push eax
lea ecx, [esp + 0x124]
call fcn.00475130
mov ecx, dword [esp + 0x118]
push 0x2f
push ecx
call fcn.004554a0
add esp, 8
cmp eax, ebp
je 0x47118a
mov byte [eax], 0x5c
mov edx, dword [esp + 0x118]
push 0x2f
push edx
call fcn.004554a0
add esp, 8
cmp eax, ebp
jne 0x471171
mov edi, dword [esp + 0x118]
lea eax, [esp + 0x79]
mov dword [esp + 0x70], eax
lea ecx, [esp + 0xe9]
lea edx, [esp + 0x41]
lea eax, [esp + 0xb1]
mov dword [esp + 0x74], ebx
mov byte [esp + 0x78], 0
mov dword [esp + 0xa4], ebp
mov byte [esp + 0x79], 0
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], ebx
mov byte [esp + 0xe8], 0
mov dword [esp + 0x114], ebp
mov byte [esp + 0xe9], 0
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x40], 0
mov dword [esp + 0x6c], ebp
mov byte [esp + 0x41], 0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ebx
mov byte [esp + 0xb0], 0
mov dword [esp + 0xdc], ebp
mov byte [esp + 0xb1], 0
cmp edi, ebp
jne 0x471242
push str.icudt46l
lea ecx, [esp + 0x14]
call fcn.004010b0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
push ecx
push edx
jmp 0x47132c
push 0x5c
push edi
call fcn.0044fe50
push 0x5c
push edi
mov ebx, eax
call fcn.004554a0
push edi
mov ebp, eax
call fcn.00472140
add esp, 0x14
test al, al
jne 0x4712ff
cmp ebx, ebp
jne 0x4712ff
push 0x2d
push edi
call fcn.004554a0
mov ebx, eax
add esp, 8
lea ecx, [esp + 0x10]
test ebx, ebx
je 0x4712de
lea eax, [ebx + 1]
push eax
call fcn.004010b0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
push ecx
push edx
lea ecx, [esp + 0xb4]
call fcn.00475130
cmp byte [esp + 0x20], 0
je 0x4712c6
push str.icudt46l
lea ecx, [esp + 0x14]
call fcn.004010b0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push esi
push eax
push ecx
jmp 0x47132c
push esi
sub ebx, edi
push ebx
push edi
lea ecx, [esp + 0x44]
call fcn.00475130
test ebp, ebp
jne 0x471335
mov edi, dword [esp + 0x38]
jmp 0x471335
cmp byte [esp + 0x20], 0
je 0x4712ec
push str.icudt46l
jmp 0x47131c
push edi
call fcn.004010b0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
push ecx
push edx
jmp 0x47132c
lea ecx, [esp + 0x10]
test ebx, ebx
je 0x47131b
inc ebx
push ebx
call fcn.004010b0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push esi
push eax
push ecx
jmp 0x47132c
push edi
call fcn.004010b0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push esi
push edx
push eax
lea ecx, [esp + 0x44]
call fcn.00475130
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x38]
push esi
push ecx
push edx
lea ecx, [esp + 0x7c]
call fcn.00475130
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x38]
push esi
push eax
push ecx
lea ecx, [esp + 0xec]
call fcn.00475130
cmp dword [esp + 0xdc], 0
mov ebp, dword [esp + 0xa4]
je 0x4713bc
push esi
push 0x2f
lea ecx, [esp + 0x78]
call fcn.004750b0
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xa8]
push esi
push edx
push ecx
mov ecx, eax
call fcn.00475130
push esi
push 0x5c
lea ecx, [esp + 0xe8]
call fcn.004750b0
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xa8]
push esi
push edx
push ecx
mov ecx, eax
call fcn.00475130
mov ebx, dword [esp + 0x1c]
push ebx
lea ecx, [esp + 0x14]
call fcn.004010b0
push esi
push 0x2f
lea ecx, [esp + 0x78]
call fcn.004750b0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push esi
push edx
push ecx
mov ecx, eax
call fcn.00475130
push ebx
lea ecx, [esp + 0x14]
call fcn.004010b0
push esi
push 0x5c
lea ecx, [esp + 0xe8]
call fcn.004750b0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push esi
push edx
push ecx
mov ecx, eax
call fcn.00475130
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x4714a3
cmp byte [ebx], 0
je 0x4714a3
push ebx
lea ecx, [esp + 0x34]
call fcn.004010b0
push 0x4a6e30
lea ecx, [esp + 0x14]
call fcn.004010b0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push esi
push edx
push eax
lea ecx, [esp + 0x7c]
call fcn.00475130
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push esi
push ecx
push edx
mov ecx, eax
call fcn.00475130
push ebx
lea ecx, [esp + 0x34]
call fcn.004010b0
push 0x4a6e30
lea ecx, [esp + 0x14]
call fcn.004010b0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push esi
push eax
push ecx
lea ecx, [esp + 0xec]
call fcn.00475130
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push esi
push edx
push ecx
mov ecx, eax
call fcn.00475130
mov edx, dword [esp + 0xe0]
add edx, ebp
mov dword [esp + 0x10], edx
test edi, edi
jne 0x4714b9
mov edi, str.icudt46l
call fcn.00472180
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [0x4fe510]
cmp eax, 2
jne 0x471512
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
push esi
push eax
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov eax, ebx
push eax
push edi
push ecx
push ebp
lea ebx, [esp + 0x38]
call fcn.00470f30
mov ebx, eax
add esp, 0x20
test ebx, ebx
jne 0x47177d
cmp dword [esi], eax
jg 0x47177d
mov eax, dword [0x4fe510]
cmp eax, 2
je 0x47151a
test eax, eax
jne 0x4715e8
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x471527
cmp byte [ecx], 0
jne 0x471532
cmp byte [esp + 0x20], 0
jne 0x4715e8
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
mov edx, dword [esp + 0x30]
push eax
mov ecx, edi
call fcn.00470b80
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x47156c
cmp dword [esi], eax
jle 0x4715e3
cmp byte [esp + 0xb0], 0
je 0x471586
mov ecx, dword [esp + 0xa8]
push ecx
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x40], 0
je 0x47159a
mov edx, dword [esp + 0x38]
push edx
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0xe8], 0
je 0x4715b4
mov eax, dword [esp + 0xe0]
push eax
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x78], 0
je 0x4715c8
mov ecx, dword [esp + 0x70]
push ecx
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x120], 0
je 0x4717f3
mov edx, dword [esp + 0x118]
push edx
jmp 0x4717eb
mov eax, dword [0x4fe510]
cmp eax, 1
je 0x4715f1
test eax, eax
jne 0x471630
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
push esi
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
push eax
push edi
push ecx
push ebp
lea ebx, [esp + 0x38]
call fcn.00470f30
mov ebx, eax
add esp, 0x20
test ebx, ebx
jne 0x47177d
cmp dword [esi], eax
jg 0x47177d
mov eax, dword [0x4fe510]
cmp eax, 3
jne 0x4716ec
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
push esi
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x7c]
push ecx
push edx
push edi
push eax
push ebp
lea ebx, [esp + 0x38]
call fcn.00470f30
mov edi, eax
add esp, 0x20
test edi, edi
jne 0x47166f
cmp dword [esi], eax
jle 0x4716f1
cmp byte [esp + 0xb0], 0
je 0x471689
mov ecx, dword [esp + 0xa8]
push ecx
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x40], 0
je 0x47169d
mov edx, dword [esp + 0x38]
push edx
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0xe8], 0
je 0x4716b7
mov eax, dword [esp + 0xe0]
push eax
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x78], 0
je 0x4716cb
mov ecx, dword [esp + 0x70]
push ecx
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x120], 0
je 0x4716e5
mov edx, dword [esp + 0x118]
push edx
call fcn.0045bbf0
add esp, 4
mov eax, edi
jmp 0x4717f5
cmp dword [esi], 0
jg 0x471703
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x471701
mov dword [esi], 4
jmp 0x471703
mov dword [esi], eax
cmp byte [esp + 0xb0], 0
je 0x47171d
mov eax, dword [esp + 0xa8]
push eax
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x40], 0
je 0x471731
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0xe8], 0
je 0x47174b
mov edx, dword [esp + 0xe0]
push edx
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x78], 0
je 0x47175f
mov eax, dword [esp + 0x70]
push eax
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x120], 0
je 0x471779
mov ecx, dword [esp + 0x118]
push ecx
call fcn.0045bbf0
add esp, 4
xor eax, eax
jmp 0x4717f5
cmp byte [esp + 0xb0], 0
je 0x471797
mov edx, dword [esp + 0xa8]
push edx
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x40], 0
je 0x4717ab
mov eax, dword [esp + 0x38]
push eax
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0xe8], 0
je 0x4717c5
mov ecx, dword [esp + 0xe0]
push ecx
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x78], 0
je 0x4717d9
mov edx, dword [esp + 0x70]
push edx
call fcn.0045bbf0
add esp, 4
cmp byte [esp + 0x120], 0
je 0x4717f3
mov eax, dword [esp + 0x118]
push eax
call fcn.0045bbf0
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0x150]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00439589
add esp, 0x144
ret