Function at 0x47b240
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4906b5
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
mov eax, dword [0x4c3aa8]
xor eax, esp
mov dword [esp + 0xb4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c3aa8]
xor eax, esp
push eax
lea eax, [esp + 0xcc]
mov dword fs:[0], eax
mov ebx, dword [esp + 0xdc]
push 0x20
push 0xe
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], ebx
call fcn.00470500
mov edi, dword [ebx + 0x10]
mov esi, eax
cmp dword [ebx + 0xc], edi
jbe 0x47b2a2
call fcn.0045067c
mov eax, dword [ebx + 0xc]
mov ebp, dword [ebx]
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 0x10]
jbe 0x47b2b5
call fcn.0045067c
mov eax, dword [ebx]
test ebp, ebp
je 0x47b2bf
cmp ebp, eax
je 0x47b2c4
call fcn.0045067c
sub edi, dword [esp + 0x14]
sar edi, 1
mov dword [esi + 8], edi
mov edi, dword [ebx + 0x28]
cmp dword [ebx + 0x24], edi
jbe 0x47b2da
call fcn.0045067c
mov eax, dword [ebx + 0x24]
mov ebp, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 0x28]
jbe 0x47b2ee
call fcn.0045067c
mov eax, dword [ebx + 0x18]
test ebp, ebp
je 0x47b2f9
cmp ebp, eax
je 0x47b2fe
call fcn.0045067c
sub edi, dword [esp + 0x14]
sar edi, 1
shr edi, 1
mov dword [esi + 0xc], edi
mov edi, dword [ebx + 0x50]
cmp dword [ebx + 0x4c], edi
jbe 0x47b316
call fcn.0045067c
mov ecx, ebx
mov ebx, dword [ecx + 0x4c]
mov ebp, dword [ecx + 0x40]
cmp ebx, dword [ecx + 0x50]
jbe 0x47b32c
call fcn.0045067c
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x40]
test ebp, ebp
je 0x47b337
cmp ebp, eax
je 0x47b340
call fcn.0045067c
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
sub edi, ebx
sar edi, 1
mov dword [esi + 0x10], edi
mov eax, dword [ecx + 0x34]
mov dword [esi + 0x14], eax
mov ecx, dword [ecx + 0x38]
mov dword [esi + 0x18], ecx
mov edx, dword [edx]
test dword [edx + 0x20], 0x100000
je 0x47b3a2
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0x58]
mov ebx, eax
and ebx, edx
cmp ebx, edx
je 0x47b37c
mov edx, dword [edi + 0x5c]
mov ebx, eax
and ebx, edx
cmp ebx, edx
jne 0x47b384
mov edx, dword [edi + 0x60]
or edx, eax
mov dword [esi + 0x14], edx
mov eax, dword [edi + 0x58]
mov edx, ecx
and edx, eax
cmp edx, eax
je 0x47b39a
mov eax, dword [edi + 0x5c]
mov edx, ecx
and edx, eax
cmp edx, eax
jne 0x47b3a2
mov eax, dword [edi + 0x60]
or eax, ecx
mov dword [esi + 0x18], eax
mov edi, dword [esp + 0x28]
mov al, byte [edi + 0x30]
mov edx, dword [esp + 0x18]
mov byte [esi + 0x1c], al
cmp byte [edi + 0x31], 0
sete cl
mov byte [esi + 0x1d], cl
mov eax, dword [edx]
sub esi, dword [eax + 0x144]
mov dword [esp + 0x5c], esi
mov esi, dword [edi + 0xc]
cmp esi, dword [edi + 0x10]
jbe 0x47b3d3
call fcn.0045067c
mov ebp, dword [edi]
mov ebx, esi
mov esi, dword [edi + 0x10]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], esi
cmp dword [edi + 0xc], esi
jbe 0x47b3ec
call fcn.0045067c
mov ecx, dword [edi]
mov dword [esp + 0x2c], ecx
test ebp, ebp
je 0x47b3fc
cmp ebp, dword [esp + 0x2c]
je 0x47b401
call fcn.0045067c
cmp ebx, esi
je 0x47b551
test ebp, ebp
jne 0x47b509
call fcn.0045067c
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x47b422
call fcn.0045067c
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x140]
xor edx, edx
cmp byte [ebx + 1], dl
setne dl
add esi, 0x140
sub ecx, eax
add edx, 2
mov edi, edx
cmp ecx, edi
jae 0x47b459
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.00489ec0
mov ebp, dword [esi + 8]
mov ecx, dword [esp + 0x1c]
add edi, ebp
mov dword [esi + 8], edi
test ecx, ecx
jne 0x47b511
call fcn.0045067c
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x47b486
call fcn.0045067c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp byte [edx + 0xc], 0
mov al, byte [ebx]
je 0x47b4a1
mov edx, dword [edx + 4]
mov edx, dword [edx]
movzx eax, al
mov al, byte [edx + eax + 0x104]
mov byte [ebp], al
test ecx, ecx
jne 0x47b518
call fcn.0045067c
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x47b4c1
call fcn.0045067c
mov ecx, dword [esp + 0x1c]
cmp byte [ebx + 1], 0
je 0x47b520
test ecx, ecx
jne 0x47b51c
call fcn.0045067c
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x47b4e4
call fcn.0045067c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp byte [edx + 0xc], 0
mov al, byte [ebx + 1]
je 0x47b500
mov edx, dword [edx + 4]
mov edx, dword [edx]
movzx eax, al
mov al, byte [edx + eax + 0x104]
mov byte [ebp + 1], al
mov byte [ebp + 2], 0
jmp 0x47b524
mov eax, dword [ebp]
jmp 0x47b418
mov eax, dword [ecx]
jmp 0x47b478
mov eax, dword [ecx]
jmp 0x47b4b3
mov eax, dword [ecx]
jmp 0x47b4d6
mov byte [ebp + 1], 0
test ecx, ecx
jne 0x47b54d
call fcn.0045067c
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x47b539
call fcn.0045067c
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebx, 2
jmp 0x47b3f2
mov eax, dword [ecx]
jmp 0x47b52f
mov esi, dword [edi + 0x24]
cmp esi, dword [edi + 0x28]
jbe 0x47b55e
call fcn.0045067c
mov eax, dword [edi + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x20], esi
mov dword [esp + 0x58], eax
cmp dword [edi + 0x24], eax
jbe 0x47b57a
call fcn.0045067c
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x60], ecx
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x47b58f
cmp esi, dword [esp + 0x60]
je 0x47b594
call fcn.0045067c
mov edi, dword [esp + 0x20]
cmp edi, dword [esp + 0x58]
je 0x47bda6
test esi, esi
jne 0x47b5f0
call fcn.0045067c
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x47b5b7
call fcn.0045067c
mov ebp, dword [esp + 0x18]
mov al, byte [ebp + 0xc]
mov cl, byte [edi]
mov bl, byte [edi + 1]
mov edx, dword [ebp + 4]
test al, al
je 0x47b5da
mov esi, dword [edx]
movzx ecx, cl
mov cl, byte [ecx + esi + 0x104]
mov esi, dword [esp + 0x1c]
mov byte [esp + 0x34], cl
test al, al
je 0x47b5f4
mov edx, dword [edx]
movzx eax, bl
mov al, byte [eax + edx + 0x104]
jmp 0x47b5f6
mov eax, dword [esi]
jmp 0x47b5ad
mov al, bl
mov byte [esp + 0x35], al
test esi, esi
jne 0x47b656
call fcn.0045067c
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x47b60f
call fcn.0045067c
add edi, 2
test esi, esi
jne 0x47b65a
call fcn.0045067c
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x47b627
call fcn.0045067c
mov al, byte [ebp + 0xc]
mov cl, byte [edi]
mov edx, dword [ebp + 4]
test al, al
je 0x47b63f
mov esi, dword [edx]
movzx ecx, cl
mov cl, byte [ecx + esi + 0x104]
mov byte [esp + 0x2c], cl
test al, al
je 0x47b65e
movzx eax, byte [edi + 1]
mov edx, dword [edx]
mov al, byte [eax + edx + 0x104]
jmp 0x47b661
mov eax, dword [esi]
jmp 0x47b605
mov eax, dword [esi]
jmp 0x47b61d
mov al, byte [edi + 1]
mov byte [esp + 0x2d], al
mov eax, dword [esp + 0x1c]
xor ebp, ebp
cmp eax, ebp
jne 0x47b872
call fcn.0045067c
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x47b684
call fcn.0045067c
add edi, 2
mov eax, 0xf
mov dword [esp + 0x20], edi
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], ebp
mov byte [esp + 0x94], 0
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], ebp
mov byte [esp + 0xb0], 0
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
test dword [ecx + 0x20], 0x200000
mov ebx, 1
mov byte [esp + 0xd4], bl
je 0x47b879
movzx edx, byte [esp + 0x34]
mov al, byte [esp + 0x35]
mov cl, byte [esp + 0x2c]
mov byte [esp + 0x14], dl
movzx edx, byte [esp + 0x2d]
mov byte [esp + 0x15], al
test al, al
mov byte [esp + 0x16], 0
mov byte [esp + 0x24], cl
mov byte [esp + 0x25], dl
mov byte [esp + 0x26], 0
lea eax, [esp + 0x16]
jne 0x47b71a
lea eax, [esp + 0x15]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esi + 4]
call fcn.004711d0
push 0xffffffffffffffff
push ebp
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 2
call fcn.004020b0
mov edi, 0x10
mov byte [esp + 0xd4], bl
cmp dword [esp + 0x54], edi
jb 0x47b764
mov edx, dword [esp + 0x40]
push edx
call fcn.0042e69b
add esp, 4
cmp byte [esp + 0x25], 0
lea eax, [esp + 0x26]
jne 0x47b773
lea eax, [esp + 0x25]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esi + 4]
call fcn.004711d0
push 0xffffffffffffffff
push ebp
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0xe0], 3
call fcn.004020b0
mov byte [esp + 0xd4], bl
cmp dword [esp + 0x54], edi
jb 0x47b7b8
mov edx, dword [esp + 0x40]
push edx
call fcn.0042e69b
add esp, 4
cmp dword [esp + 0xa4], ebp
jne 0x47b80d
mov dword [esp + 0x54], 0xf
mov byte [esp + 0x40], 0
mov dword [esp + 0x50], ebx
mov byte [esp + 0x41], 0
push 0xffffffffffffffff
push ebp
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 4
call fcn.004020b0
mov byte [esp + 0xd4], bl
cmp dword [esp + 0x54], edi
jb 0x47b80d
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0042e69b
add esp, 4
mov edi, dword [esp + 0xc0]
cmp edi, ebp
jne 0x47baa3
mov dword [esp + 0x54], 0xf
mov byte [esp + 0x40], 0
mov dword [esp + 0x50], ebx
mov byte [esp + 0x41], 0
push 0xffffffffffffffff
push ebp
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0xb8]
mov byte [esp + 0xe0], 5
call fcn.004020b0
cmp dword [esp + 0x54], 0x10
mov byte [esp + 0xd4], bl
jb 0x47ba9c
mov eax, dword [esp + 0x40]
push eax
call fcn.0042e69b
add esp, 4
jmp 0x47ba9c
mov eax, dword [eax]
jmp 0x47b67a
cmp byte [esp + 0x35], 0
je 0x47b91b
mov edx, dword [esp + 0x34]
push edx
lea ecx, [esp + 0x98]
push ecx
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0xa0]
call fcn.00472730
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x94]
mov esi, eax
cmp edx, 0x10
jae 0x47b8c6
lea esi, [esp + 0x94]
mov edi, dword [esp + 0xa4]
add esi, edi
cmp esi, ebp
je 0x47b8f7
mov ecx, eax
cmp edx, 0x10
jae 0x47b8e1
lea ecx, [esp + 0x94]
cmp ecx, esi
ja 0x47b8f7
cmp edx, 0x10
jae 0x47b8f1
lea eax, [esp + 0x94]
add eax, edi
cmp esi, eax
jbe 0x47b8fc
call fcn.0045067c
mov ecx, dword [esp + 0x35]
push ecx
lea eax, [esp + 0x94]
push esi
push eax
lea edx, [esp + 0x94]
push edx
mov ecx, eax
call fcn.00472730
jmp 0x47b967
mov dword [esp + 0x54], eax
mov al, byte [esp + 0x34]
mov byte [esp + 0x40], al
mov dword [esp + 0x50], ebx
mov byte [esp + 0x41], 0
push 0xffffffffffffffff
push ebp
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 6
call fcn.004020b0
cmp dword [esp + 0x54], 0x10
mov byte [esp + 0xd4], bl
jb 0x47b967
mov edx, dword [esp + 0x40]
push edx
call fcn.0042e69b
add esp, 4
cmp byte [esp + 0x2d], 0
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xc4]
mov esi, eax
je 0x47ba40
cmp edi, 0x10
jae 0x47b98e
lea esi, [esp + 0xb0]
mov edx, dword [esp + 0xc0]
add esi, edx
cmp esi, ebp
je 0x47b9bf
mov ecx, eax
cmp edi, 0x10
jae 0x47b9a9
lea ecx, [esp + 0xb0]
cmp ecx, esi
ja 0x47b9bf
cmp edi, 0x10
jae 0x47b9b9
lea eax, [esp + 0xb0]
add eax, edx
cmp esi, eax
jbe 0x47b9c4
call fcn.0045067c
mov ecx, dword [esp + 0x2c]
push ecx
lea eax, [esp + 0xb0]
push esi
push eax
lea edx, [esp + 0x84]
push edx
mov ecx, eax
call fcn.00472730
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xb0]
mov esi, eax
cmp edx, 0x10
jae 0x47b9fd
lea esi, [esp + 0xb0]
mov edi, dword [esp + 0xc0]
add esi, edi
cmp esi, ebp
je 0x47ba2e
mov ecx, eax
cmp edx, 0x10
jae 0x47ba18
lea ecx, [esp + 0xb0]
cmp ecx, esi
ja 0x47ba2e
cmp edx, 0x10
jae 0x47ba28
lea eax, [esp + 0xb0]
add eax, edi
cmp esi, eax
jbe 0x47ba33
call fcn.0045067c
mov ecx, dword [esp + 0x2d]
lea edx, [esp + 0x80]
jmp 0x47ba8a
cmp edi, 0x10
jae 0x47ba4c
lea esi, [esp + 0xb0]
mov edx, dword [esp + 0xc0]
add esi, edx
cmp esi, ebp
je 0x47ba7d
mov ecx, eax
cmp edi, 0x10
jae 0x47ba67
lea ecx, [esp + 0xb0]
cmp ecx, esi
ja 0x47ba7d
cmp edi, 0x10
jae 0x47ba77
lea eax, [esp + 0xb0]
add eax, edx
cmp esi, eax
jbe 0x47ba82
call fcn.0045067c
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x70]
push ecx
push esi
lea eax, [esp + 0xb4]
push eax
push edx
mov ecx, eax
call fcn.00472730
mov edi, dword [esp + 0xc0]
cmp dword [esp + 0xa8], 0x10
mov edx, dword [esp + 0x94]
jae 0x47babb
lea edx, [esp + 0x94]
mov ecx, dword [esp + 0xa4]
cmp edi, ecx
jae 0x47bac8
mov ecx, edi
mov esi, dword [esp + 0xc4]
mov ebx, dword [esp + 0xb0]
mov eax, ebx
cmp esi, 0x10
jae 0x47bae4
lea eax, [esp + 0xb0]
push ecx
push edx
push eax
call fcn.0046bef0
add esp, 0xc
cmp eax, ebp
jne 0x47bb0d
mov eax, dword [esp + 0xa4]
cmp edi, eax
jb 0x47bd5d
xor ecx, ecx
cmp edi, eax
setne cl
mov eax, ecx
cmp eax, ebp
jl 0x47bd5d
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov edx, dword [esp + 0xa4]
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x140]
add esi, 0x140
lea edi, [edi + edx + 2]
sub ecx, eax
cmp ecx, edi
jae 0x47bb4a
mov edx, edi
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.00489ec0
mov ebx, dword [esi + 8]
add edi, ebx
mov dword [esi + 8], edi
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x94]
mov eax, edx
cmp ecx, 0x10
jae 0x47bb6e
lea eax, [esp + 0x94]
mov esi, dword [esp + 0xa4]
lea edi, [eax + esi]
cmp edi, ebp
je 0x47bba2
mov eax, edx
cmp ecx, 0x10
jae 0x47bb8a
lea eax, [esp + 0x94]
cmp eax, edi
ja 0x47bba2
mov eax, edx
cmp ecx, 0x10
jae 0x47bb9c
lea eax, [esp + 0x94]
add eax, esi
cmp edi, eax
jbe 0x47bbb5
call fcn.0045067c
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x94]
cmp ecx, 0x10
jb 0x47bd45
mov esi, edx
cmp edx, ebp
je 0x47bbf1
mov eax, edx
cmp ecx, 0x10
jae 0x47bbd2
lea eax, [esp + 0x94]
cmp eax, esi
ja 0x47bbf1
mov eax, edx
cmp ecx, 0x10
jae 0x47bbe4
lea eax, [esp + 0x94]
mov edx, dword [esp + 0xa4]
add eax, edx
cmp esi, eax
jbe 0x47bbf6
call fcn.0045067c
sub edi, esi
mov eax, edi
cmp eax, ebp
jle 0x47bc0a
push eax
push esi
push eax
push ebx
call fcn.0044e46e
add esp, 0x10
mov eax, dword [esp + 0xa4]
mov byte [ebx + eax], 0
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xb0]
lea ebx, [ebx + ecx + 1]
mov ecx, dword [esp + 0xc4]
mov eax, edx
cmp ecx, 0x10
jae 0x47bc3c
lea eax, [esp + 0xb0]
mov esi, dword [esp + 0xc0]
lea edi, [eax + esi]
cmp edi, ebp
je 0x47bc70
mov eax, edx
cmp ecx, 0x10
jae 0x47bc58
lea eax, [esp + 0xb0]
cmp eax, edi
ja 0x47bc70
mov eax, edx
cmp ecx, 0x10
jae 0x47bc6a
lea eax, [esp + 0xb0]
add eax, esi
cmp edi, eax
jbe 0x47bc83
call fcn.0045067c
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xb0]
cmp ecx, 0x10
jb 0x47bd51
mov esi, edx
cmp edx, ebp
je 0x47bcbf
mov eax, edx
cmp ecx, 0x10
jae 0x47bca0
lea eax, [esp + 0xb0]
cmp eax, esi
ja 0x47bcbf
mov eax, edx
cmp ecx, 0x10
jae 0x47bcb2
lea eax, [esp + 0xb0]
mov edx, dword [esp + 0xc0]
add eax, edx
cmp esi, eax
jbe 0x47bcc4
call fcn.0045067c
sub edi, esi
mov eax, edi
cmp eax, ebp
jle 0x47bcd8
push eax
push esi
push eax
push ebx
call fcn.0044e46e
add esp, 0x10
mov eax, dword [esp + 0xc0]
mov byte [ebx + eax], 0
cmp dword [esp + 0xc4], 0x10
jb 0x47bcfd
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.0042e69b
add esp, 4
cmp dword [esp + 0xa8], 0x10
mov dword [esp + 0xc4], 0xf
mov dword [esp + 0xc0], ebp
mov byte [esp + 0xb0], 0
mov dword [esp + 0xd4], 0xffffffff
jb 0x47b581
mov edx, dword [esp + 0x94]
push edx
call fcn.0042e69b
add esp, 4
jmp 0x47b581
lea esi, [esp + 0x94]
jmp 0x47bbc4
lea esi, [esp + 0xb0]
jmp 0x47bc92
cmp esi, 0x10
jb 0x47bd6b
push ebx
call fcn.0042e69b
add esp, 4
cmp dword [esp + 0xa8], 0x10
mov dword [esp + 0xc4], 0xf
mov dword [esp + 0xc0], ebp
mov byte [esp + 0xb0], 0
jb 0x47bd9f
mov eax, dword [esp + 0x94]
push eax
call fcn.0042e69b
add esp, 4
xor eax, eax
jmp 0x47c0a5
mov edi, dword [esp + 0x28]
mov esi, dword [edi + 0x4c]
cmp esi, dword [edi + 0x50]
jbe 0x47bdb7
call fcn.0045067c
mov eax, dword [edi + 0x50]
mov ecx, dword [edi + 0x40]
mov dword [esp + 0x1c], ecx
mov ebp, esi
mov dword [esp + 0x58], eax
cmp dword [edi + 0x4c], eax
jbe 0x47bdd1
call fcn.0045067c
mov edx, dword [edi + 0x40]
mov dword [esp + 0x60], edx
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x47bde6
cmp edi, dword [esp + 0x60]
je 0x47bdeb
call fcn.0045067c
cmp ebp, dword [esp + 0x58]
je 0x47c092
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], 0
mov byte [esp + 0x94], 0
mov dword [esp + 0xd4], 7
test edi, edi
jne 0x47bed5
call fcn.0045067c
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x47be37
call fcn.0045067c
cmp byte [ebp + 1], 0
lea esi, [ebp + 1]
je 0x47bee7
test edi, edi
jne 0x47bedc
call fcn.0045067c
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x47be5d
call fcn.0045067c
mov al, byte [ebp]
mov byte [esp + 0x14], al
test edi, edi
jne 0x47bee3
call fcn.0045067c
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x47be79
call fcn.0045067c
mov cl, byte [esi]
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x16]
push edx
mov byte [esp + 0x19], cl
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esi + 4]
mov byte [esp + 0x22], 0
call fcn.00478c40
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 8
call fcn.004020b0
cmp dword [esp + 0x54], 0x10
mov byte [esp + 0xd4], 7
jb 0x47bf61
mov edx, dword [esp + 0x40]
push edx
jmp 0x47bf59
mov eax, dword [edi]
jmp 0x47be2d
mov eax, dword [edi]
jmp 0x47be53
mov eax, dword [edi]
jmp 0x47be6f
test edi, edi
jne 0x47c070
call fcn.0045067c
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x47bf00
call fcn.0045067c
test edi, edi
jne 0x47c077
call fcn.0045067c
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x47bf19
call fcn.0045067c
push esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 4]
push ebp
lea eax, [esp + 0x44]
push eax
call fcn.00478c40
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 9
call fcn.004020b0
cmp dword [esp + 0x54], 0x10
mov byte [esp + 0xd4], 7
jb 0x47bf61
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0042e69b
add esp, 4
mov edi, dword [esp + 0xa4]
test edi, edi
je 0x47c082
mov esi, dword [esi]
mov eax, dword [esi + 0x148]
mov edx, dword [esi + 0x140]
add esi, 0x140
inc edi
sub edx, eax
cmp edx, edi
jae 0x47bf99
mov edx, edi
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.00489ec0
mov ebx, dword [esi + 8]
add edi, ebx
mov dword [esi + 8], edi
cmp dword [esp + 0xa8], 0x10
mov eax, dword [esp + 0x94]
jae 0x47bfb9
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0xa4]
lea edx, [esp + 0x90]
add eax, ecx
push edx
push eax
lea ecx, [esp + 0x34]
call fcn.004136e0
mov eax, dword [esp + 0x94]
mov esi, 0x10
cmp dword [esp + 0xa8], esi
jae 0x47bff0
lea eax, [esp + 0x94]
lea ecx, [esp + 0x90]
push ecx
push eax
lea ecx, [esp + 0x3c]
call fcn.004136e0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
sub eax, ecx
test eax, eax
jle 0x47c01c
push eax
push ecx
push eax
push ebx
call fcn.0044e46e
add esp, 0x10
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xa4]
mov byte [ebx + edx], 0
test eax, eax
jne 0x47c07e
call fcn.0045067c
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x47c040
call fcn.0045067c
add ebp, 2
mov dword [esp + 0xd4], 0xffffffff
cmp dword [esp + 0xa8], esi
jb 0x47bdd8
mov eax, dword [esp + 0x94]
push eax
call fcn.0042e69b
add esp, 4
jmp 0x47bdd8
mov eax, dword [edi]
jmp 0x47bef6
mov eax, dword [edi]
jmp 0x47bf0f
mov eax, dword [eax]
jmp 0x47c036
lea ecx, [esp + 0x90]
call fcn.00471830
xor eax, eax
jmp 0x47c0a5
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x144]
add eax, dword [esp + 0x5c]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0xcc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.0044e1ea
add esp, 0xc4
ret 8