Function at 0x40f100
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, ecx
push ebx
push esi
push edi
lea edi, [eax + 0x108]
mov dword [eax], 0
mov dword [esp + 0x18], eax
lea ebx, [eax + 4]
mov byte [edi], 0
mov ax, word [0x5f5df4]
mov word [esp + 0x10], ax
mov al, byte [0x5f5df6]
push 0
mov dword [esp + 0x30], edi
mov byte [esp + 0x16], al
call fcn.004e7196
mov ecx, dword [esp + 0x1c]
add esp, 4
mov esi, edx
sub eax, dword [ecx + 0x1438]
mov dword [esp + 0x24], eax
sbb esi, dword [ecx + 0x143c]
mov ecx, dword [0x615bbc]
mov eax, ecx
shl eax, 4
sub eax, ecx
shl eax, 2
cdq
cmp esi, edx
jg 0x40f187
jl 0x40f179
cmp dword [esp + 0x24], eax
ja 0x40f187
mov esi, dword [esp + 0x18]
mov cl, 1
mov eax, dword [esi + 0x141c]
jmp 0x40f192
mov esi, dword [esp + 0x18]
xor cl, cl
mov eax, 0x4a
mov dword [esi + 0x1420], eax
mov al, byte [ebx]
mov byte [esp + 0xf], cl
test al, al
je 0x410509
cmp al, 0xd
jne 0x40f1db
cmp byte [ebx + 1], 0xa
jne 0x4104ee
mov byte [edi], 0
add ebx, 2
mov eax, dword [esi]
inc eax
mov dword [esi], eax
cmp eax, 0x10
jge 0x410503
imul edi, eax, 0x104
add edi, 0x108
add edi, esi
jmp 0x4104f4
cmp al, 0x23
jne 0x4104ee
mov al, byte [ebx + 1]
cmp al, 0x43
jne 0x40f363
mov al, byte [ebx + 2]
cmp al, 0x43
jne 0x40f235
cmp byte [ebx + 3], 0x49
jne 0x40f235
push 0xffffffffffffffff
lea eax, [esi + 0x11c8]
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f222
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x53
jne 0x40f283
cmp byte [ebx + 3], 0x54
jne 0x40f2cb
push 0xffffffffffffffff
lea eax, [esi + 0x12fc]
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f270
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x43
jne 0x40f313
cmp byte [ebx + 3], 0x4f
jne 0x40f2cf
push 0xffffffffffffffff
lea eax, [esi + 0x1290]
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f2b8
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x43
jne 0x40f313
cmp byte [ebx + 3], 0x43
jne 0x4104ee
push 0xffffffffffffffff
lea eax, [esi + 0x12f4]
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f300
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x49
jne 0x4104ee
cmp byte [ebx + 3], 0x43
jne 0x4104ee
push 0xffffffffffffffff
lea eax, [esi + 0x13fe]
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f350
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x54
jne 0x40f4e3
mov al, byte [ebx + 2]
cmp al, 0x54
jne 0x40f3d3
cmp byte [ebx + 3], 0x4d
jne 0x40f3d3
cmp dword [0x615000], 1
mov eax, dword [esi + 0x1414]
sete cl
cdq
add eax, dword [ebp + 8]
push 0xffffffffffffffff
adc edx, dword [ebp + 0xc]
push ecx
push edx
push eax
call fcn.00410a90
add esp, 0xc
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f3c0
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x32
jne 0x40f433
cmp byte [ebx + 3], 0x34
jne 0x40f493
mov eax, dword [esi + 0x1414]
cdq
add eax, dword [ebp + 8]
push 0xffffffffffffffff
adc edx, dword [ebp + 0xc]
push ecx
push edx
push eax
xor cl, cl
call fcn.00410a90
add esp, 0xc
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f420
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x41
jne 0x40f493
cmp byte [ebx + 3], 0x50
jne 0x4104ee
mov eax, dword [esi + 0x1414]
cdq
add eax, dword [ebp + 8]
push 0xffffffffffffffff
adc edx, dword [ebp + 0xc]
push ecx
push edx
push eax
mov cl, 1
call fcn.00410a90
add esp, 0xc
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f480
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x54
jne 0x4104ee
cmp byte [ebx + 3], 0x5a
jne 0x4104ee
push 0xffffffffffffffff
lea eax, [esi + 0x13f6]
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f4d0
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x53
jne 0x40f883
mov al, byte [ebx + 2]
cmp al, 0x53
jne 0x40f5d3
cmp byte [ebx + 3], 0x52
jne 0x40f563
mov edx, dword [esi + 0x155c]
cmp edx, 0xffffffff
je 0x40f526
cmp dword [0x615000], 1
mov eax, dword [esi + 0x1414]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00410a90
add esp, 8
jmp 0x40f52b
mov eax, 0x5f5a10
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f550
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x53
jne 0x40f5d3
cmp byte [ebx + 3], al
jne 0x40f644
mov edx, dword [esi + 0x1560]
cmp edx, 0xffffffff
je 0x40f59a
cmp dword [0x615000], 1
mov eax, dword [esi + 0x1414]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00410a90
add esp, 8
jmp 0x40f59f
mov eax, 0x5f5a10
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f5c0
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x43
jne 0x40f6b5
cmp byte [ebx + 3], 0x52
jne 0x40f648
mov edx, dword [esi + 0x1564]
cmp edx, 0xffffffff
je 0x40f60b
cmp dword [0x615000], 1
mov eax, dword [esi + 0x1414]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00410a90
add esp, 8
jmp 0x40f610
mov eax, 0x5f5a10
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f631
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x43
jne 0x40f6b5
cmp byte [ebx + 3], 0x53
jne 0x40f726
mov edx, dword [esi + 0x1568]
cmp edx, 0xffffffff
je 0x40f67c
cmp dword [0x615000], 1
mov eax, dword [esi + 0x1414]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00410a90
add esp, 8
jmp 0x40f681
mov eax, 0x5f5a10
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f6a2
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x4e
jne 0x40f797
cmp byte [ebx + 3], 0x52
jne 0x40f72a
mov edx, dword [esi + 0x156c]
cmp edx, 0xffffffff
je 0x40f6ed
cmp dword [0x615000], 1
mov eax, dword [esi + 0x1414]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00410a90
add esp, 8
jmp 0x40f6f2
mov eax, 0x5f5a10
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f713
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x4e
jne 0x40f797
cmp byte [ebx + 3], 0x53
jne 0x40f808
mov edx, dword [esi + 0x1570]
cmp edx, 0xffffffff
je 0x40f75e
cmp dword [0x615000], 1
mov eax, dword [esi + 0x1414]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00410a90
add esp, 8
jmp 0x40f763
mov eax, 0x5f5a10
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f784
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x41
jne 0x4104ee
cmp byte [ebx + 3], 0x52
jne 0x40f810
mov edx, dword [esi + 0x1574]
cmp edx, 0xffffffff
je 0x40f7cf
cmp dword [0x615000], 1
mov eax, dword [esi + 0x1414]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00410a90
add esp, 8
jmp 0x40f7d4
mov eax, 0x5f5a10
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f7f5
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x41
jne 0x4104ee
cmp byte [ebx + 3], 0x53
jne 0x4104ee
mov edx, dword [esi + 0x1578]
cmp edx, 0xffffffff
je 0x40f844
cmp dword [0x615000], 1
mov eax, dword [esi + 0x1414]
sete cl
add eax, edx
cdq
push edx
push eax
call fcn.00410a90
add esp, 8
jmp 0x40f849
mov eax, 0x5f5a10
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f870
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x44
jne 0x40fb93
mov al, byte [ebx + 2]
cmp al, 0x44
jne 0x40f953
cmp byte [ebx + 3], 0x54
jne 0x40f8f3
cmp dword [0x615004], 1
mov eax, dword [esi + 0x1414]
sete cl
cdq
add eax, dword [ebp + 8]
push 0xffffffffffffffff
adc edx, dword [ebp + 0xc]
push ecx
push edx
push eax
call fcn.00410ee0
add esp, 0xc
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f8e0
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x44
jne 0x40f953
cmp byte [ebx + 3], al
jne 0x40f9b3
mov eax, dword [esi + 0x1414]
cdq
add eax, dword [ebp + 8]
push 0xffffffffffffffff
adc edx, dword [ebp + 0xc]
push ecx
push edx
push eax
xor cl, cl
call fcn.00410ee0
add esp, 0xc
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f940
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x4d
jne 0x40f9b3
cmp byte [ebx + 3], al
jne 0x40fa13
mov eax, dword [esi + 0x1414]
cdq
add eax, dword [ebp + 8]
push 0xffffffffffffffff
adc edx, dword [ebp + 0xc]
push ecx
push edx
push eax
mov cl, 1
call fcn.00410ee0
add esp, 0xc
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f9a0
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x44
jne 0x40fa13
cmp byte [ebx + 3], 0x59
jne 0x40fa73
mov eax, dword [esi + 0x1414]
cdq
add eax, dword [ebp + 8]
push 0xffffffffffffffff
adc edx, dword [ebp + 0xc]
push ecx
push edx
push eax
xor ecx, ecx
call fcn.004110b0
add esp, 0xc
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fa00
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x4d
jne 0x40fa73
cmp byte [ebx + 3], 0x4f
jne 0x40fad3
mov eax, dword [esi + 0x1414]
cdq
add eax, dword [ebp + 8]
push 0xffffffffffffffff
adc edx, dword [ebp + 0xc]
push ecx
push edx
push eax
mov ecx, 1
call fcn.004110b0
add esp, 0xc
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fa60
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x59
jne 0x40fad3
cmp byte [ebx + 3], 0x52
jne 0x40fb33
mov eax, dword [esi + 0x1414]
cdq
add eax, dword [ebp + 8]
push 0xffffffffffffffff
adc edx, dword [ebp + 0xc]
push ecx
push edx
push eax
mov ecx, 2
call fcn.004110b0
add esp, 0xc
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fac0
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x57
jne 0x4104ee
cmp byte [ebx + 3], 0x33
jne 0x40fb3b
mov eax, dword [esi + 0x1414]
cdq
add eax, dword [ebp + 8]
push 0xffffffffffffffff
adc edx, dword [ebp + 0xc]
xor cl, cl
push edx
push eax
call fcn.00411010
add esp, 8
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fb20
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x57
jne 0x4104ee
cmp byte [ebx + 3], 0x44
jne 0x4104ee
mov eax, dword [esi + 0x1414]
mov cl, 1
cdq
add eax, dword [ebp + 8]
push 0xffffffffffffffff
adc edx, dword [ebp + 0xc]
push edx
push eax
call fcn.00411010
add esp, 8
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fb80
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x57
jne 0x41027d
mov al, byte [ebx + 2]
cmp al, 0x54
jne 0x40fd13
cmp byte [ebx + 3], 0x50
jne 0x40fc08
test cl, cl
je 0x40fbcf
movss xmm0, dword [esi + 0x1418]
mov ecx, dword [0x615bb8]
call fcn.004181a0
mov ecx, 1
call fcn.00411070
jmp 0x40fbd4
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fbf5
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x54
jne 0x40fd13
cmp byte [ebx + 3], 0x55
jne 0x40fc55
mov ecx, dword [0x615bb8]
push 0xffffffffffffffff
call fcn.004181e0
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fc42
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp byte [ebx + 3], 0x43
jne 0x40fcb3
test cl, cl
je 0x40fc7a
movss xmm0, dword [esi + 0x1418]
xor ecx, ecx
call fcn.004181a0
mov ecx, 1
call fcn.00411070
jmp 0x40fc7f
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fca0
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp byte [ebx + 3], 0x46
jne 0x40fd73
test cl, cl
je 0x40fcda
movss xmm0, dword [esi + 0x1418]
mov ecx, 1
call fcn.004181a0
call fcn.00411070
jmp 0x40fcdf
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fd00
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x44
jne 0x40fdd3
cmp byte [ebx + 3], 0x53
jne 0x40fd77
test cl, cl
je 0x40fd36
imul eax, dword [esi + 0x1420], 0xa4
add eax, 0x611f84
jmp 0x40fd3b
mov eax, 0x5f5c30
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fd60
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x44
jne 0x40fdd3
cmp byte [ebx + 3], 0x4c
jne 0x40fe43
test cl, cl
je 0x40fd96
imul eax, dword [esi + 0x1420], 0xa4
add eax, str.Thunderstorm_with_light_rain
jmp 0x40fd9b
mov eax, 0x5f5c30
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fdc0
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x57
jne 0x4100e9
cmp byte [ebx + 3], 0x49
jne 0x40fe4b
test cl, cl
je 0x40fe04
movss xmm0, dword [esi + 0x1424]
mov ecx, dword [0x615008]
call fcn.00418200
mov ecx, 1
call fcn.00411070
jmp 0x40fe09
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fe30
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x57
jne 0x4100e9
cmp byte [ebx + 3], 0x55
jne 0x40fe93
mov ecx, dword [0x615008]
push 0xffffffffffffffff
call fcn.00418260
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fe80
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp byte [ebx + 3], 0x31
jne 0x40fef3
test cl, cl
je 0x40feb8
movss xmm0, dword [esi + 0x1424]
xor ecx, ecx
call fcn.00418200
mov ecx, 1
call fcn.00411070
jmp 0x40febd
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fee0
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp byte [ebx + 3], 0x32
jne 0x40ff53
test cl, cl
je 0x40ff16
movss xmm0, dword [esi + 0x1424]
mov ecx, 1
call fcn.00418200
call fcn.00411070
jmp 0x40ff1b
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ff40
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp byte [ebx + 3], 0x33
jne 0x40ffb4
test cl, cl
je 0x40ff7b
movss xmm0, dword [esi + 0x1424]
mov ecx, 2
call fcn.00418200
mov ecx, 1
call fcn.00411070
jmp 0x40ff80
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ffa1
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp byte [ebx + 3], 0x34
jne 0x410015
test cl, cl
je 0x40ffdc
movss xmm0, dword [esi + 0x1424]
mov ecx, 3
call fcn.00418200
mov ecx, 1
call fcn.00411070
jmp 0x40ffe1
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410002
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp byte [ebx + 3], 0x44
jne 0x410069
test cl, cl
je 0x410030
movss xmm0, dword [esi + 0x1428]
xor ecx, ecx
call fcn.00411070
jmp 0x410035
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410056
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp byte [ebx + 3], 0x43
jne 0x410145
test cl, cl
je 0x4100b0
movss xmm0, dword [esi + 0x1424]
mov ecx, 1
call fcn.00418200
movaps xmm1, xmm0
movss xmm0, dword [esi + 0x1418]
call fcn.004048b0
mov ecx, dword [0x615bb8]
call fcn.004181a0
mov ecx, 1
call fcn.00411070
jmp 0x4100b5
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4100d6
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x48
jne 0x410145
cmp byte [ebx + 3], 0x55
jne 0x4101a3
test cl, cl
je 0x41010c
movss xmm0, dword [esi + 0x142c]
xor ecx, ecx
call fcn.00411070
jmp 0x410111
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410132
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x41
jne 0x4101a3
cmp byte [ebx + 3], 0x50
jne 0x4101a3
test cl, cl
je 0x410164
movss xmm0, dword [esi + 0x1430]
xor ecx, ecx
call fcn.00411070
jmp 0x410169
mov eax, 0x5f5df8
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410190
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp byte [ebx + 2], 0x53
jne 0x4104ee
cmp byte [ebx + 3], 0x53
jne 0x4104ee
movsx eax, byte [ebx + 4]
push eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
call fcn.004e2400
add esp, 4
test eax, eax
je 0x4101eb
movsx eax, byte [ebx + 4]
sub eax, 0x30
mov dword [esp + 0x14], 1
mov dword [esp + 0x1c], eax
movsx eax, byte [ebx + 5]
push eax
call fcn.004e2400
add esp, 4
test eax, eax
je 0x410215
mov eax, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
movsx eax, byte [ebx + 5]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
inc dword [esp + 0x14]
mov dword [esp + 0x1c], eax
movsx eax, byte [ebx + 6]
push eax
call fcn.004e2400
add esp, 4
test eax, eax
mov eax, dword [esp + 0x1c]
je 0x41023b
lea ecx, [eax + eax*4]
movsx eax, byte [ebx + 6]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
inc dword [esp + 0x14]
mov byte [esp + 0x11], al
lea eax, [esp + 0x10]
push 0xffffffffffffffff
push eax
imul eax, dword [esi], 0x104
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410264
mov eax, dword [esp + 0x14]
sub ecx, edx
add eax, 4
add edi, ecx
add ebx, eax
jmp 0x4104f4
cmp al, 0x4c
jne 0x410323
mov al, byte [ebx + 2]
cmp al, 0x48
jne 0x4104ee
cmp byte [ebx + 3], 0x4d
jne 0x4102d3
imul eax, dword [esi], 0x104
push 0xffffffffffffffff
push 0x5f5dfc
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4102c0
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x48
jne 0x4104ee
cmp byte [ebx + 3], 0x50
jne 0x4104ee
imul eax, dword [esi], 0x104
push 0xffffffffffffffff
push 0x5f5e00
sub eax, edi
add eax, 0x20c
add eax, esi
push eax
push edi
call fcn.004e72b5
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410310
sub ecx, edx
add edi, ecx
add ebx, 4
jmp 0x4104f4
cmp al, 0x4d
jne 0x4104ee
cmp byte [ebx + 2], 0x45
jne 0x4104ee
cmp byte [ebx + 3], 0x54
jne 0x4104ee
movsx eax, byte [ebx + 4]
push eax
mov dword [esp + 0x18], 4
mov dword [esp + 0x24], 1
mov dword [esp + 0x20], 0x63
call fcn.004e2400
add esp, 4
test eax, eax
je 0x41037e
movsx eax, byte [ebx + 4]
sub eax, 0x30
mov dword [esp + 0x20], eax
mov eax, 5
mov dword [esp + 0x14], eax
jmp 0x410383
mov eax, 4
movsx eax, byte [eax + ebx]
push eax
call fcn.004e2400
mov edx, dword [esp + 0x18]
add esp, 4
test eax, eax
je 0x4103ae
mov eax, dword [esp + 0x20]
lea ecx, [eax + eax*4]
movsx eax, byte [edx + ebx]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
inc edx
mov dword [esp + 0x20], eax
cmp byte [edx + ebx], 0x2d
jne 0x4104ee
movsx eax, byte [edx + ebx + 1]
inc edx
push eax
mov dword [esp + 0x18], edx
call fcn.004e2400
add esp, 4
test eax, eax
mov eax, dword [esp + 0x14]
je 0x4103e3
movsx ecx, byte [eax + ebx]
sub ecx, 0x30
inc eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
movsx eax, byte [eax + ebx]
push eax
call fcn.004e2400
add esp, 4
test eax, eax
je 0x410412
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
lea ecx, [eax + eax*4]
movsx eax, byte [edx + ebx]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
inc edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
cmp byte [esp + 0xf], 0
je 0x4104e0
mov ecx, dword [esp + 0x20]
lea eax, [esi + 0x1458]
mov dword [esp + 0x24], eax
cmp ecx, 1
jle 0x41044e
lea esi, [ecx - 1]
push 0x5f5450
push eax
call fcn.0041acf0
add esp, 8
sub esi, 1
jne 0x410433
mov esi, dword [esp + 0x18]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x1c], 0
lea ecx, [esi + 0x1458]
jle 0x41048b
mov esi, dword [esp + 0x1c]
nop
push 0x5f5450
push ecx
call fcn.0041acf0
add esp, 8
mov ecx, eax
sub esi, 1
jne 0x410460
mov esi, dword [esp + 0x18]
lea edx, [esi + 0x1458]
cmp eax, edx
jbe 0x41048b
cmp byte [eax], 0
je 0x41048b
lea ecx, [eax - 1]
imul eax, dword [esi], 0x104
mov edx, dword [esp + 0x24]
sub ecx, edx
mov dword [esp + 0x24], eax
mov eax, ecx
sub eax, dword [esp + 0x24]
sub eax, esi
add eax, 0xfffffef8
add eax, edi
cmp eax, 0x104
jb 0x4104bf
mov ecx, dword [esp + 0x24]
sub ecx, edi
add ecx, 0x20b
add ecx, esi
xor esi, esi
test ecx, ecx
cmovns esi, ecx
push esi
push edx
push edi
call fcn.004de9c0
add edi, esi
mov esi, dword [esp + 0x24]
add esp, 0xc
add ebx, dword [esp + 0x14]
mov byte [edi], 0
jmp 0x4104f4
mov word [edi], 0x3f
add edi, 2
add ebx, dword [esp + 0x14]
jmp 0x4104f4
mov al, byte [ebx]
mov byte [edi], al
inc edi
inc ebx
mov al, byte [ebx]
test al, al
je 0x410509
mov cl, byte [esp + 0xf]
jmp 0x40f1a6
mov dword [esi], 0xf
mov byte [edi], 0
xor ebx, ebx
mov dword [esi + 0x1440], 0
mov eax, dword [0x84d5ec]
mov dword [esi + 0x1444], eax
mov ecx, dword [0x84d5ec]
mov eax, ecx
cmp dword [esi], ebx
jl 0x4105b2
lea edi, [esi + 0x1188]
lea ecx, [esi + 0x108]
nop
push esi
lea eax, [esp + 0x28]
xor edx, edx
push eax
push ecx
xor ecx, ecx
call fcn.00411570
mov ecx, dword [esp + 0x34]
add esp, 0xc
test ecx, ecx
jne 0x410571
mov eax, 0x55555556
imul dword [0x84d5ec]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x24]
cmp eax, dword [esi + 0x1440]
jle 0x410583
mov dword [esi + 0x1440], eax
mov dword [edi], ecx
inc ebx
mov dword [edi - 0x40], eax
add edi, 4
mov eax, dword [esi + 0x1444]
add eax, ecx
mov ecx, dword [esp + 0x2c]
add ecx, 0x104
mov dword [esi + 0x1444], eax
mov dword [esp + 0x2c], ecx
cmp ebx, dword [esi]
jle 0x410540
mov ecx, dword [0x84d5ec]
add dword [esi + 0x1440], ecx
cmp eax, dword [0x84d5f4]
jle 0x4105c5
mov dword [0x84d5f4], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret