Function at 0x471980
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ad590
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push esi
push edi
mov eax, dword [0x4cd4a4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [edi + 0x120]
mov byte [edi + 0x15d], 1
mov byte [edi + 0x168], 0
mov byte [edi + 0x169], 0
mov byte [edi + 0x16a], 0
mov byte [edi + 0x16b], 0
mov eax, dword [eax]
cmp dword [eax + 0x20], 0
mov byte [ebp - 0x11], 1
jne 0x471fb3
cmp dword [eax + 0x24], 0
jne 0x471fb3
cmp dword [edi + 0x110], 0
mov dword [ebp - 4], 0
jne 0x471a0d
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea edx, [ebp - 0x28]
push edx
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 1
jne 0x471a31
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 7
lea eax, [ebp - 0x24]
push eax
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 2
jne 0x471a53
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x20]
push edx
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 3
jne 0x471a73
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov eax, dword [esi]
mov edx, dword [eax + 0x20]
lea ecx, [ebp - 0x1c]
push ecx
push esi
call edx
test eax, eax
jge 0x471a91
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x20]
setne bl
test eax, eax
mov byte [ebp - 4], 2
je 0x471aab
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 1
je 0x471abe
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0
je 0x471ad1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x471c22
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.00404420
cmp dword [edi + 0x114], 0
jne 0x471af7
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x114]
lea eax, [ebp - 0x20]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 5
jne 0x471b1b
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x24]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 6
jne 0x471b3b
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x28]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 7
jne 0x471b5b
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 1
push esi
call edx
test eax, eax
jge 0x471b7a
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 6
je 0x471b8d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 5
je 0x471ba0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x20]
test eax, eax
mov byte [ebp - 4], 4
je 0x471bb3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov byte [ebp - 4], 9
jne 0x471bd4
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x28]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xa
jne 0x471bf8
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 7
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 9
je 0x471c22
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [ebp - 0x18]
cmp dword [esi + 0x110], 0
mov edi, 0xd
mov dword [ebp - 4], edi
jne 0x471c40
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x110]
lea eax, [ebp - 0x1c]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xe
jne 0x471c64
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 9
lea edx, [ebp - 0x20]
push edx
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xf
jne 0x471c86
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x24]
push eax
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x10
jne 0x471ca6
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x20]
lea edx, [ebp - 0x28]
push edx
push esi
call eax
test eax, eax
jge 0x471cc4
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x24]
setne bl
test eax, eax
mov byte [ebp - 4], 0xf
je 0x471cde
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x20]
test eax, eax
mov byte [ebp - 4], 0xe
je 0x471cf1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x1c]
test eax, eax
mov byte [ebp - 4], 0xd
je 0x471d04
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x471fa9
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x471d2d
push 0x80004003
call fcn.0049fa80
mov eax, esi
mov ecx, dword [eax + 0x114]
lea edx, [ebp - 0x20]
push edx
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x12
jne 0x471d53
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x24]
push eax
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0x13
mov byte [ebp - 4], bl
jne 0x471d74
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x28]
push edx
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x14
jne 0x471d94
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov eax, dword [esi]
mov ecx, dword [eax + 0x100]
push 4
push esi
call ecx
test eax, eax
jge 0x471db3
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], bl
je 0x471dc5
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x12
je 0x471dd8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x20]
test eax, eax
mov byte [ebp - 4], 0x11
je 0x471deb
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov byte [ebp - 4], 0x16
jne 0x471e08
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x28]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x17
jne 0x471e2c
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 9
lea edx, [ebp - 0x1c]
push edx
call fcn.004713e0
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x19
je 0x471e4c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, edi
call fcn.00404420
cmp dword [ebp - 0x1c], 0
jne 0x471e63
push 0x80004003
call fcn.0049fa80
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x30]
push eax
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x1a
jne 0x471e84
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 1
lea edx, [ebp - 0x2c]
push edx
call fcn.004039b0
mov esi, eax
cmp dword [esi], 0
mov bl, 0x1b
mov byte [ebp - 4], bl
jne 0x471ea7
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x20]
push eax
call fcn.00403a00
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x1c
jne 0x471ec7
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 6
lea edx, [ebp - 0x48]
push edx
call fcn.0040a8f0
mov ecx, eax
mov byte [ebp - 4], 0x1d
call fcn.004029a0
fstp dword [ebp - 0x24]
fld dword [ebp - 0x24]
lea eax, [ebp - 0x48]
push eax
fstp dword [ebp - 0x24]
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x20]
test eax, eax
mov byte [ebp - 4], bl
je 0x471f04
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0x1a
je 0x471f17
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], 0x19
je 0x471f2a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
fldz
fld dword [ebp - 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x471f73
mov eax, dword [edi + 0x120]
mov eax, dword [eax]
fsubr dword [eax]
fstp dword [eax + 0x2c]
jmp 0x471f75
fstp st(0)
push ecx
mov ecx, dword [ebp - 0x1c]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [ebp - 0x1c]
test eax, eax
mov dword [ebp - 0x38], esp
je 0x471f8f
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x1c]
test eax, eax
mov byte [ebp - 4], 0x16
je 0x471fa9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x18]
mov eax, dword [edi + 0x120]
mov ecx, dword [eax]
cmp dword [ecx + 0x24], 0
je 0x472440
mov byte [edi + 0x168], 1
cmp dword [edi + 0x110], 0
mov dword [ebp - 4], 0x20
jne 0x471fe6
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea edx, [ebp - 0x24]
push edx
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x21
jne 0x47200a
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 0xa
lea eax, [ebp - 0x28]
push eax
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x22
jne 0x47202c
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x23
jne 0x47204c
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov eax, dword [esi]
mov edx, dword [eax + 0x20]
lea ecx, [ebp - 0x30]
push ecx
push esi
call edx
test eax, eax
jge 0x47206a
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0x22
je 0x472084
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x21
je 0x472097
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x20
je 0x4720aa
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x4721fb
mov ecx, edi
mov byte [ebp - 4], 0x24
call fcn.00404420
cmp dword [edi + 0x114], 0
jne 0x4720d0
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x25
jne 0x4720f4
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0x26
mov byte [ebp - 4], bl
jne 0x472115
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x27
jne 0x472135
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 2
push esi
call edx
test eax, eax
jge 0x472154
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x472166
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0x25
je 0x472179
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x24
je 0x47218c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0x20
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov byte [ebp - 4], 0x29
jne 0x4721ad
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x2a
jne 0x4721d1
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 0xa
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], 0x29
je 0x4721fb
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [ebp - 0x18]
cmp dword [esi + 0x110], 0
mov edi, 0x2d
mov dword [ebp - 4], edi
jne 0x472219
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x110]
lea eax, [ebp - 0x24]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x2e
jne 0x47223d
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 0xb
lea edx, [ebp - 0x28]
push edx
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x2f
jne 0x47225f
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x2c]
push eax
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x30
jne 0x47227f
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x20]
lea edx, [ebp - 0x30]
push edx
push esi
call eax
test eax, eax
jge 0x47229d
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0x2f
je 0x4722b7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x2e
je 0x4722ca
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x2d
je 0x4722dd
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x47242d
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0x31
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x472306
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x32
jne 0x47232a
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0x33
mov byte [ebp - 4], bl
jne 0x47234b
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x34
jne 0x47236b
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 5
push esi
call edx
test eax, eax
jge 0x47238a
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x47239c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0x32
je 0x4723af
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x31
je 0x4723c2
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov bl, 0x36
mov byte [ebp - 4], bl
jne 0x4723e0
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x37
jne 0x472404
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 0xb
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x47242d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x168], 0
mov edi, eax
mov ecx, dword [edi + 0x120]
mov eax, dword [ecx]
cmp dword [eax + 0x20], 0
je 0x4737f2
cmp dword [eax + 0x24], 0
je 0x472e84
mov byte [edi + 0x16a], 1
cmp dword [edi + 0x110], 0
mov dword [ebp - 4], 0x3a
jne 0x47247d
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea edx, [ebp - 0x24]
push edx
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x3b
jne 0x4724a1
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 6
lea eax, [ebp - 0x28]
push eax
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x3c
jne 0x4724c3
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x3d
jne 0x4724e3
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov eax, dword [esi]
mov edx, dword [eax + 0x20]
lea ecx, [ebp - 0x30]
push ecx
push esi
call edx
test eax, eax
jge 0x472501
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0x3c
je 0x47251b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x3b
je 0x47252e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x3a
je 0x472541
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x472695
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0x3e
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x47256a
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x3f
jne 0x47258e
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0x40
mov byte [ebp - 4], bl
jne 0x4725af
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x41
jne 0x4725cf
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 3
push esi
call edx
test eax, eax
jge 0x4725ee
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x472600
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0x3f
je 0x472613
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x3e
je 0x472626
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0x3a
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov bl, 0x45
mov byte [ebp - 4], bl
jne 0x472648
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea edx, [ebp - 0x30]
push edx
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x46
jne 0x47266c
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 6
push eax
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x472695
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [ebp - 0x18]
cmp dword [esi + 0x110], 0
mov edi, 0x49
mov dword [ebp - 4], edi
jne 0x4726b3
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x110]
lea eax, [ebp - 0x24]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x4a
jne 0x4726d7
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 8
lea edx, [ebp - 0x28]
push edx
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x4b
jne 0x4726f9
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x2c]
push eax
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x4c
jne 0x472719
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x20]
lea edx, [ebp - 0x30]
push edx
push esi
call eax
test eax, eax
jge 0x472737
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0x4b
je 0x472751
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x4a
je 0x472764
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x49
je 0x472777
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x4728c7
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0x4d
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x4727a0
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x4e
jne 0x4727c4
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0x4f
mov byte [ebp - 4], bl
jne 0x4727e5
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x50
jne 0x472805
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 6
push esi
call edx
test eax, eax
jge 0x472824
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x472836
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0x4e
je 0x472849
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x4d
je 0x47285c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov bl, 0x52
mov byte [ebp - 4], bl
jne 0x47287a
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x53
jne 0x47289e
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 8
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x4728c7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [ebp - 0x18]
mov byte [esi + 0x16a], 0
mov byte [esi + 0x169], 1
cmp dword [esi + 0x110], 0
mov edi, 0x56
mov dword [ebp - 4], edi
jne 0x4728f3
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x110]
lea eax, [ebp - 0x24]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x57
jne 0x472917
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 7
lea edx, [ebp - 0x28]
push edx
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x58
jne 0x472939
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x2c]
push eax
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x59
jne 0x472959
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x20]
lea edx, [ebp - 0x30]
push edx
push esi
call eax
test eax, eax
jge 0x472977
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0x58
je 0x472991
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x57
je 0x4729a4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x56
je 0x4729b7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x472b07
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0x5a
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x4729e0
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x5b
jne 0x472a04
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0x5c
mov byte [ebp - 4], bl
jne 0x472a25
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x5d
jne 0x472a45
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 1
push esi
call edx
test eax, eax
jge 0x472a64
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x472a76
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0x5b
je 0x472a89
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x5a
je 0x472a9c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov bl, 0x5f
mov byte [ebp - 4], bl
jne 0x472aba
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x60
jne 0x472ade
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 7
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x472b07
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [ebp - 0x18]
cmp dword [esi + 0x110], 0
mov edi, 0x63
mov dword [ebp - 4], edi
jne 0x472b25
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x110]
lea eax, [ebp - 0x24]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x64
jne 0x472b49
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 9
lea edx, [ebp - 0x28]
push edx
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x65
jne 0x472b6b
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x2c]
push eax
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x66
jne 0x472b8b
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x20]
lea edx, [ebp - 0x30]
push edx
push esi
call eax
test eax, eax
jge 0x472ba9
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0x65
je 0x472bc3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x64
je 0x472bd6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x63
je 0x472be9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x472d39
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0x67
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x472c12
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x68
jne 0x472c36
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0x69
mov byte [ebp - 4], bl
jne 0x472c57
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x6a
jne 0x472c77
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 4
push esi
call edx
test eax, eax
jge 0x472c96
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x472ca8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0x68
je 0x472cbb
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x67
je 0x472cce
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov bl, 0x6c
mov byte [ebp - 4], bl
jne 0x472cec
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x6d
jne 0x472d10
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 9
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x472d39
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x169], 0
jmp 0x473c7e
mov byte [edi + 0x169], 1
cmp dword [edi + 0x110], 0
mov dword [ebp - 4], 0x70
jne 0x472ea5
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea edx, [ebp - 0x24]
push edx
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x71
jne 0x472ec9
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 7
lea eax, [ebp - 0x28]
push eax
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x72
jne 0x472eeb
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x73
jne 0x472f0b
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov eax, dword [esi]
mov edx, dword [eax + 0x20]
lea ecx, [ebp - 0x30]
push ecx
push esi
call edx
test eax, eax
jge 0x472f29
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0x72
je 0x472f43
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x71
je 0x472f56
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x70
je 0x472f69
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x4730bd
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0x74
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x472f92
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x75
jne 0x472fb6
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0x76
mov byte [ebp - 4], bl
jne 0x472fd7
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x77
jne 0x472ff7
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 1
push esi
call edx
test eax, eax
jge 0x473016
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x473028
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0x75
je 0x47303b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x74
je 0x47304e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0x70
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov bl, 0x79
mov byte [ebp - 4], bl
jne 0x473070
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x7a
jne 0x473094
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 7
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x4730bd
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [ebp - 0x18]
cmp dword [esi + 0x110], 0
mov edi, 0x7d
mov dword [ebp - 4], edi
jne 0x4730db
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x110]
lea eax, [ebp - 0x24]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x7e
jne 0x4730ff
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 9
lea edx, [ebp - 0x28]
push edx
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x7f
jne 0x473121
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x2c]
push eax
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x80
jne 0x473141
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x20]
lea edx, [ebp - 0x30]
push edx
push esi
call eax
test eax, eax
jge 0x47315f
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0x7f
je 0x473179
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x7e
je 0x47318c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x7d
je 0x47319f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x4732ef
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0x81
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x4731c8
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x82
jne 0x4731ec
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0x83
mov byte [ebp - 4], bl
jne 0x47320d
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x84
jne 0x47322d
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 4
push esi
call edx
test eax, eax
jge 0x47324c
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x47325e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0x82
je 0x473271
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x81
je 0x473284
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov bl, 0x86
mov byte [ebp - 4], bl
jne 0x4732a2
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x87
jne 0x4732c6
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 9
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x4732ef
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [ebp - 0x18]
mov byte [esi + 0x169], 0
mov byte [esi + 0x16a], 1
cmp dword [esi + 0x110], 0
mov edi, 0x8a
mov dword [ebp - 4], edi
jne 0x47331b
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x110]
lea eax, [ebp - 0x24]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x8b
jne 0x47333f
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 6
lea edx, [ebp - 0x28]
push edx
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x8c
jne 0x473361
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x2c]
push eax
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x8d
jne 0x473381
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x20]
lea edx, [ebp - 0x30]
push edx
push esi
call eax
test eax, eax
jge 0x47339f
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0x8c
je 0x4733b9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x8b
je 0x4733cc
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x8a
je 0x4733df
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x47352f
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0x8e
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x473408
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x8f
jne 0x47342c
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0x90
mov byte [ebp - 4], bl
jne 0x47344d
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x91
jne 0x47346d
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 3
push esi
call edx
test eax, eax
jge 0x47348c
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x47349e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0x8f
je 0x4734b1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x8e
je 0x4734c4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov bl, 0x93
mov byte [ebp - 4], bl
jne 0x4734e2
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x94
jne 0x473506
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 6
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x47352f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [ebp - 0x18]
cmp dword [esi + 0x110], 0
mov edi, 0x97
mov dword [ebp - 4], edi
jne 0x47354d
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x110]
lea eax, [ebp - 0x24]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x98
jne 0x473571
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 8
lea edx, [ebp - 0x28]
push edx
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x99
jne 0x473593
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x2c]
push eax
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x9a
jne 0x4735b3
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x20]
lea edx, [ebp - 0x30]
push edx
push esi
call eax
test eax, eax
jge 0x4735d1
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0x99
je 0x4735eb
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x98
je 0x4735fe
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x97
je 0x473611
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x473761
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0x9b
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x47363a
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x9c
jne 0x47365e
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0x9d
mov byte [ebp - 4], bl
jne 0x47367f
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x9e
jne 0x47369f
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 6
push esi
call edx
test eax, eax
jge 0x4736be
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x4736d0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0x9c
je 0x4736e3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0x9b
je 0x4736f6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov bl, 0xa0
mov byte [ebp - 4], bl
jne 0x473714
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xa1
jne 0x473738
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 8
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x473761
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x16a], 0
jmp 0x473c7e
cmp dword [edi + 0x174], 1
je 0x473c80
mov byte [edi + 0x16b], 1
cmp dword [edi + 0x110], 0
mov dword [ebp - 4], 0xa4
jne 0x473820
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea edx, [ebp - 0x24]
push edx
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xa5
jne 0x473844
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 7
lea eax, [ebp - 0x28]
push eax
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xa6
jne 0x473866
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xa7
jne 0x473886
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov eax, dword [esi]
mov edx, dword [eax + 0x20]
lea ecx, [ebp - 0x30]
push ecx
push esi
call edx
test eax, eax
jge 0x4738a4
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0xa6
je 0x4738be
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0xa5
je 0x4738d1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0xa4
je 0x4738e4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x473a38
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0xa8
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x47390d
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xa9
jne 0x473931
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0xaa
mov byte [ebp - 4], bl
jne 0x473952
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xab
jne 0x473972
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 1
push esi
call edx
test eax, eax
jge 0x473991
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x4739a3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0xa9
je 0x4739b6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0xa8
je 0x4739c9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0xa4
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov bl, 0xad
mov byte [ebp - 4], bl
jne 0x4739eb
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xae
jne 0x473a0f
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 7
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x473a38
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [ebp - 0x18]
cmp dword [esi + 0x110], 0
mov dword [ebp - 4], 0xb1
jne 0x473a55
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x110]
lea eax, [ebp - 0x24]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xb2
jne 0x473a79
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push 9
lea edx, [ebp - 0x28]
push edx
call fcn.004713e0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xb3
jne 0x473a9b
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x2c]
push eax
call fcn.004036c0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xb4
jne 0x473abb
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x20]
lea edx, [ebp - 0x30]
push edx
push esi
call eax
test eax, eax
jge 0x473ad9
push 0x4b3b7c
push esi
push eax
call fcn.0049fa90
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
setne bl
test eax, eax
mov byte [ebp - 4], 0xb3
je 0x473af3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0xb2
je 0x473b06
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0xb1
je 0x473b19
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x473c6d
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov byte [ebp - 4], 0xb5
call fcn.00404420
cmp dword [esi + 0x114], 0
jne 0x473b42
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x114]
lea eax, [ebp - 0x28]
push eax
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xb6
jne 0x473b66
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x2c]
push edx
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0xb7
mov byte [ebp - 4], bl
jne 0x473b87
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xb8
jne 0x473ba7
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x100]
push 4
push esi
call edx
test eax, eax
jge 0x473bc6
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x473bd8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0xb6
je 0x473beb
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0xb5
je 0x473bfe
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0xb1
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0x110], 0
mov bl, 0xba
mov byte [ebp - 4], bl
jne 0x473c20
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xbb
jne 0x473c44
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 9
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x473c6d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x16b], 0
mov edi, eax
cmp byte [ebp - 0x11], 0
je 0x473c8f
push 8
mov ecx, edi
call fcn.0046df90
mov ecx, edi
mov byte [edi + 0x15d], 0
call fcn.00404420
cmp dword [edi + 0x114], 0
jne 0x473cb0
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x114]
lea edx, [ebp - 0x28]
push edx
call fcn.00470de0
mov esi, eax
cmp dword [esi], 0
mov dword [ebp - 4], 0xbe
jne 0x473cd7
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea eax, [ebp - 0x2c]
push eax
call fcn.00471150
mov esi, eax
cmp dword [esi], 0
mov bl, 0xbf
mov byte [ebp - 4], bl
jne 0x473cf8
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x30]
push edx
call fcn.004711f0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xc0
jne 0x473d18
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov eax, dword [esi]
mov ecx, dword [eax + 0x100]
push 0
push esi
call ecx
test eax, eax
jge 0x473d37
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x473d49
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [ebp - 0x2c]
test eax, eax
mov byte [ebp - 4], 0xbe
je 0x473d5c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov dword [ebp - 4], 0xffffffff
je 0x473d72
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, edi
call fcn.00404420
mov byte [edi + 0x16c], 1
cmp dword [edi + 0x110], 0
mov ebx, 0xc1
mov dword [ebp - 4], ebx
jne 0x473d9b
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xc2
jne 0x473dbf
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 2
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x473de8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 0x29
mov ecx, edi
call fcn.0046df90
mov edi, dword [ebp - 0x18]
mov byte [edi + 0x16c], 0
mov byte [edi + 0x16d], 1
cmp dword [edi + 0x110], 0
mov ebx, 0xc4
mov dword [ebp - 4], ebx
jne 0x473e1d
push 0x80004003
call fcn.0049fa80
mov ecx, dword [edi + 0x110]
lea eax, [ebp - 0x30]
push eax
call fcn.004710b0
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xc5
jne 0x473e41
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
push ecx
mov edx, esp
mov dword [ebp - 0x38], esp
push 3
push edx
call fcn.004713e0
mov ecx, edi
call fcn.00471640
mov eax, dword [ebp - 0x30]
test eax, eax
mov byte [ebp - 4], bl
je 0x473e6a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push 0x2a
mov ecx, edi
call fcn.0046df90
mov esi, dword [ebp - 0x18]
mov byte [esi + 0x16d], 0
mov word [ebp - 0x48], 3
mov dword [ebp - 0x40], 1
cmp dword [esi + 0x110], 0
mov dword [ebp - 4], 0xc7
jne 0x473ea4
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi + 0x110]
lea eax, [ebp - 0x38]
push eax
call fcn.00471060
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xc8
jne 0x473ec8
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x48]
push edx
lea eax, [ebp - 0x34]
push eax
call fcn.004711a0
mov esi, eax
cmp dword [esi], 0
mov bl, 0xc9
mov byte [ebp - 4], bl
jne 0x473eed
push 0x80004003
call fcn.0049fa80
mov ecx, dword [esi]
lea edx, [ebp - 0x18]
push edx
call fcn.00403530
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0xca
jne 0x473f0d
push 0x80004003
call fcn.0049fa80
mov esi, dword [esi]
mov eax, dword [esi]
mov ecx, dword [eax + 0x2c]
push 3
push esi
call ecx
test eax, eax
jge 0x473f29
push 0x4b3b18
push esi
push eax
call fcn.0049fa90
mov eax, dword [ebp - 0x18]
test eax, eax
mov byte [ebp - 4], bl
je 0x473f3b
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [ebp - 0x34]
test eax, eax
mov byte [ebp - 4], 0xc8
je 0x473f4e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x38]
test eax, eax
mov byte [ebp - 4], 0xc7
je 0x473f61
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret