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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
push ebx
push esi
mov esi, ecx
mov ecx, dword [esi + 0xa0]
push edi
mov dword [esp + 0x14], esi
call fcn.00470860
test eax, eax
jne 0x49cbc9
mov ecx, dword [esi + 0xa0]
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x40], edi
cmp dword [ecx + 0x100], 2
mov dword [esp + 0x18], edi
sete al
mov dword [esp + 0x54], ebx
mov dword [esp + 0x3c], eax
cmp eax, edi
je 0x49be12
push 1
push 1
push edi
push 1
lea eax, [esp + 0x50]
push eax
call fcn.0047fcf0
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0xa0]
mov esi, dword [eax + 0x1bc]
sub esi, dword [eax + 0x1b8]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x34], esi
jmp 0x49be35
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, esi
call fcn.00488aa0
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x34]
cmp edi, esi
mov dword [esp + 0x28], edi
jg 0x49c321
xor esi, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], esi
cmp dword [esp + 0x3c], esi
je 0x49beab
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
xor edi, edi
cmp ecx, esi
mov edx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], edi
jle 0x49be90
lea esp, [esp]
mov ebx, 0xd
cmp bx, word [eax + edi*2]
jne 0x49be87
mov ebx, 0xa
cmp bx, word [eax + edi*2 + 2]
je 0x49be8c
inc edi
cmp edi, ecx
jl 0x49be70
mov dword [esp + 0x1c], edi
lea eax, [eax + edi*2 + 4]
mov dword [esp + 0x40], eax
mov eax, 0xfffffffe
sub eax, edi
add ecx, eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ecx
jmp 0x49bedf
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xa0]
mov ecx, dword [esp + 0x28]
mov edx, dword [edx + 0x31c]
lea eax, [ecx + ecx*8]
lea eax, [edx + eax*4]
mov edx, dword [eax + 8]
mov dword [esp + 0x20], edx
cmp ecx, dword [esp + 0x34]
jne 0x49bed8
mov edi, dword [esp + 0x44]
jmp 0x49bedb
mov edi, dword [eax]
dec edi
mov dword [esp + 0x1c], edi
cmp edi, esi
jle 0x49c094
lea eax, [edx + edi*2 - 2]
movzx ecx, word [eax]
mov edx, 0x20
cmp dx, cx
je 0x49bf02
mov edx, 9
cmp dx, cx
jne 0x49bf0a
dec edi
sub eax, 2
cmp edi, esi
jg 0x49beeb
cmp edi, esi
mov dword [esp + 0x1c], edi
jle 0x49c094
mov ebx, dword [esp + 0x24]
lea ebx, [ebx]
mov eax, dword [esp + 0x20]
movzx eax, word [eax + esi*2]
mov ecx, 9
cmp cx, ax
jne 0x49bf4d
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
xor eax, eax
cdq
idiv ecx
sub ecx, edx
add ebx, ecx
jmp 0x49bf58
mov ecx, 0x20
cmp cx, ax
jne 0x49bf66
inc ebx
inc esi
cmp esi, edi
jl 0x49bf20
mov dword [esp + 0x24], ebx
jmp 0x49c094
cmp esi, edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], ebx
jge 0x49c094
jmp 0x49bf80
mov edx, dword [esp + 0x20]
movzx eax, word [edx + esi*2]
mov ecx, 9
cmp cx, ax
jne 0x49bfb8
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
mov ebx, dword [esp + 0x10]
mov eax, ebx
cdq
idiv ecx
sub ecx, edx
add ebx, ecx
mov dword [esp + 0x10], ebx
jmp 0x49c08b
test byte [0x5c3e2b], 1
movzx eax, ax
jne 0x49c0da
movzx ecx, ax
movzx eax, ax
cmp word [eax*2 + 0x5c3e38], 0
mov dword [esp + 0x38], ecx
jne 0x49c01b
mov ecx, dword [0x5e3e3c]
lea edx, [esp + 0x60]
push edx
push 1
lea eax, [esp + 0x40]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3e30], 0
je 0x49c009
mov edx, dword [0x5c3e14]
sub dword [esp + 0x60], edx
movzx eax, word [esp + 0x38]
mov cx, word [esp + 0x60]
mov word [eax*2 + 0x5c3e38], cx
cmp word [0x5c3f28], 0
movzx ebx, word [eax*2 + 0x5c3e38]
mov eax, 0x78
mov dword [esp + 0x30], eax
jne 0x49c076
mov ecx, dword [0x5e3e3c]
lea edx, [esp + 0x68]
push edx
push 1
lea eax, [esp + 0x38]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3e30], 0
je 0x49c062
mov edx, dword [0x5c3e14]
sub dword [esp + 0x68], edx
mov eax, dword [esp + 0x30]
mov dx, word [esp + 0x68]
movzx ecx, ax
mov word [ecx*2 + 0x5c3e38], dx
movzx eax, ax
movzx ecx, word [eax*2 + 0x5c3e38]
add ecx, ecx
cmp ebx, ecx
jge 0x49c0e9
inc dword [esp + 0x10]
inc esi
cmp esi, edi
jl 0x49bf80
cmp dword [esp + 0x3c], 0
je 0x49c0fa
cmp esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x38], ebx
jge 0x49c10e
lea esp, [esp]
mov ecx, dword [esp + 0x20]
mov eax, 9
cmp ax, word [ecx + esi*2]
jne 0x49c0f0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
mov eax, ebx
cdq
idiv ecx
sub ecx, edx
add ebx, ecx
jmp 0x49c0f1
add eax, 0xffffd180
mov edx, 0xcc59
cmp ax, dx
ja 0x49c087
add dword [esp + 0x10], 2
jmp 0x49c08b
inc ebx
inc esi
cmp esi, dword [esp + 0x50]
jl 0x49c0b0
jmp 0x49c10a
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xa0]
mov ebx, dword [edx + 0xdc]
mov dword [esp + 0x38], ebx
xor eax, eax
test edi, edi
jle 0x49c13c
mov ecx, dword [ebp + 8]
cmp ecx, 2
jne 0x49c128
mov eax, ebx
sub eax, dword [esp + 0x10]
add eax, dword [esp + 0x24]
jmp 0x49c13c
cmp ecx, 1
jne 0x49c13c
mov eax, ebx
sub eax, dword [esp + 0x10]
add eax, dword [esp + 0x24]
cdq
sub eax, edx
sar eax, 1
xor edi, edi
test eax, eax
jle 0x49c148
add dword [esp + 0x18], eax
mov edi, eax
xor ebx, ebx
cmp dword [esp + 0x1c], ebx
jle 0x49c2af
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
lea esp, [esp]
movzx eax, word [ecx + ebx*2]
mov esi, 9
cmp si, ax
je 0x49c178
mov esi, 0x20
cmp si, ax
jne 0x49c182
inc ebx
cmp ebx, edx
jl 0x49c160
jmp 0x49c2af
cmp ebx, edx
jge 0x49c2af
lea ebx, [ebx]
mov eax, dword [esp + 0x20]
movzx eax, word [eax + ebx*2]
mov ecx, 9
cmp cx, ax
jne 0x49c1cc
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
mov eax, edi
cdq
idiv ecx
sub ecx, edx
add edi, ecx
test ecx, ecx
jle 0x49c2a4
add dword [esp + 0x18], ecx
jmp 0x49c2a4
test byte [0x5c3e2b], 1
movzx eax, ax
jne 0x49c359
movzx ecx, ax
movzx eax, ax
cmp word [eax*2 + 0x5c3e38], 0
mov dword [esp + 0x30], ecx
jne 0x49c22f
mov ecx, dword [0x5e3e3c]
lea edx, [esp + 0x70]
push edx
push 1
lea eax, [esp + 0x38]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3e30], 0
je 0x49c21d
mov edx, dword [0x5c3e14]
sub dword [esp + 0x70], edx
movzx eax, word [esp + 0x30]
mov cx, word [esp + 0x70]
mov word [eax*2 + 0x5c3e38], cx
cmp word [0x5c3f28], 0
movzx esi, word [eax*2 + 0x5c3e38]
mov eax, 0x78
mov dword [esp + 0x2c], eax
jne 0x49c28a
mov ecx, dword [0x5e3e3c]
lea edx, [esp + 0x78]
push edx
push 1
lea eax, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3e30], 0
je 0x49c276
mov edx, dword [0x5c3e14]
sub dword [esp + 0x78], edx
mov eax, dword [esp + 0x2c]
mov dx, word [esp + 0x78]
movzx ecx, ax
mov word [ecx*2 + 0x5c3e38], dx
movzx eax, ax
movzx ecx, word [eax*2 + 0x5c3e38]
add ecx, ecx
cmp esi, ecx
jge 0x49c36c
inc edi
inc dword [esp + 0x18]
inc ebx
cmp ebx, dword [esp + 0x1c]
jl 0x49c190
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
test esi, esi
je 0x49c2f7
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xa0]
mov eax, dword [ecx + 0x1b8]
mov ebx, dword [ecx + 0x31c]
mov ecx, dword [ecx + 0x1a8]
add eax, edx
lea eax, [eax + eax*8]
mov eax, dword [ebx + eax*4]
dec eax
lea ebx, [edx + edx*2]
cmp dword [ecx + ebx*4 + 4], eax
jge 0x49c2f7
mov eax, dword [esp + 0x38]
cmp edi, eax
jge 0x49c2f7
sub eax, edi
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
cmp edx, eax
jl 0x49c303
test esi, esi
je 0x49c308
add dword [esp + 0x18], 2
inc edx
cmp edx, eax
mov dword [esp + 0x28], edx
jle 0x49be41
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004ff272
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x49c374
push ebx
call fcn.004ff267
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
add eax, 0xffffd180
mov edx, 0xcc59
cmp ax, dx
ja 0x49c29f
add edi, 2
jmp 0x49c2a0
mov ecx, dword [esp + 0x5c]
mov eax, ebx
xor ebx, ebx
cmp edi, esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], edi
jg 0x49c91e
jmp 0x49c39a
mov eax, dword [esp + 0x40]
xor edi, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], edi
cmp dword [esp + 0x3c], edi
je 0x49c3fd
mov ecx, dword [esp + 0x4c]
xor esi, esi
cmp ecx, edi
mov edx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], esi
jle 0x49c3e0
mov edi, edi
mov edi, 0xd
cmp di, word [eax + esi*2]
jne 0x49c3d7
mov edi, 0xa
cmp di, word [eax + esi*2 + 2]
je 0x49c3dc
inc esi
cmp esi, ecx
jl 0x49c3c0
mov dword [esp + 0x1c], esi
lea eax, [eax + esi*2 + 4]
mov dword [esp + 0x40], eax
mov eax, 0xfffffffe
sub eax, esi
add ecx, eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ecx
xor edi, edi
jmp 0x49c431
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0xa0]
mov ecx, dword [esp + 0x28]
mov edx, dword [edx + 0x31c]
lea eax, [ecx + ecx*8]
lea eax, [edx + eax*4]
mov edx, dword [eax + 8]
mov dword [esp + 0x20], edx
cmp ecx, dword [esp + 0x34]
jne 0x49c42a
mov esi, dword [esp + 0x44]
jmp 0x49c42d
mov esi, dword [eax]
dec esi
mov dword [esp + 0x1c], esi
cmp esi, edi
jle 0x49c463
lea eax, [edx + esi*2 - 2]
lea esp, [esp]
movzx ecx, word [eax]
mov edx, 0x20
cmp dx, cx
je 0x49c457
mov edx, 9
cmp dx, cx
jne 0x49c45f
dec esi
sub eax, 2
cmp esi, edi
jg 0x49c440
mov dword [esp + 0x1c], esi
cmp esi, edi
mov dword [esp + 0x30], edi
jle 0x49c5ef
nop
mov eax, dword [esp + 0x20]
movzx eax, word [eax + edi*2]
mov ecx, 9
cmp cx, ax
jne 0x49c49f
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
xor eax, eax
cdq
idiv ecx
sub ecx, edx
add dword [esp + 0x24], ecx
jmp 0x49c4ad
mov ecx, 0x20
cmp cx, ax
jne 0x49c4bb
inc dword [esp + 0x24]
inc edi
cmp edi, esi
jl 0x49c470
mov dword [esp + 0x30], edi
jmp 0x49c5ef
cmp edi, esi
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], edi
mov dword [esp + 0x10], edx
jge 0x49c5ef
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
movzx eax, word [eax + ecx*2]
mov edx, 9
cmp dx, ax
jne 0x49c50c
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xa0]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0x10c]
mov eax, edi
cdq
idiv ecx
sub ecx, edx
add edi, ecx
mov dword [esp + 0x10], edi
jmp 0x49c5de
test byte [0x5c3e2b], 1
movzx eax, ax
jne 0x49c63e
movzx edx, ax
movzx eax, ax
cmp word [eax*2 + 0x5c3e38], 0
mov dword [esp + 0x38], edx
jne 0x49c56e
mov edx, dword [0x5e3e3c]
lea eax, [esp + 0x78]
push eax
push 1
lea ecx, [esp + 0x40]
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3e30], 0
je 0x49c55c
mov eax, dword [0x5c3e14]
sub dword [esp + 0x78], eax
movzx eax, word [esp + 0x38]
mov cx, word [esp + 0x78]
mov word [eax*2 + 0x5c3e38], cx
cmp word [0x5c3f28], 0
movzx edi, word [eax*2 + 0x5c3e38]
mov eax, 0x78
mov dword [esp + 0x5c], eax
jne 0x49c5c9
mov ecx, dword [0x5e3e3c]
lea edx, [esp + 0x70]
push edx
push 1
lea eax, [esp + 0x64]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3e30], 0
je 0x49c5b5
mov edx, dword [0x5c3e14]
sub dword [esp + 0x70], edx
mov eax, dword [esp + 0x5c]
mov dx, word [esp + 0x70]
movzx ecx, ax
mov word [ecx*2 + 0x5c3e38], dx
movzx eax, ax
movzx ecx, word [eax*2 + 0x5c3e38]
add ecx, ecx
cmp edi, ecx
jge 0x49c64d
inc dword [esp + 0x10]
mov eax, dword [esp + 0x30]
inc eax
cmp eax, esi
mov dword [esp + 0x30], eax
jl 0x49c4d0
cmp dword [esp + 0x3c], 0
je 0x49c662
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x50]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x38], edi
jge 0x49c676
jmp 0x49c610
mov edx, dword [esp + 0x20]
mov ecx, 9
cmp cx, word [edx + eax*2]
jne 0x49c654
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xa0]
mov ecx, dword [ecx + 0x10c]
mov eax, edi
cdq
idiv ecx
mov eax, dword [esp + 0x30]
sub ecx, edx
add edi, ecx
jmp 0x49c655
add eax, 0xffffd180
mov edx, 0xcc59
cmp ax, dx
ja 0x49c5da
add dword [esp + 0x10], 2
jmp 0x49c5de
inc edi
inc eax
cmp eax, dword [esp + 0x50]
mov dword [esp + 0x30], eax
jl 0x49c610
jmp 0x49c672
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov edi, dword [eax + 0xdc]
mov dword [esp + 0x38], edi
xor edx, edx
test esi, esi
jle 0x49c6a6
mov eax, dword [ebp + 8]
cmp eax, 2
jne 0x49c690
mov edx, edi
sub edx, dword [esp + 0x10]
add edx, dword [esp + 0x24]
jmp 0x49c6a6
cmp eax, 1
jne 0x49c6a6
mov eax, edi
sub eax, dword [esp + 0x10]
add eax, dword [esp + 0x24]
cdq
sub eax, edx
mov edx, eax
sar edx, 1
xor edi, edi
test edx, edx
jle 0x49c6d5
mov ecx, dword [esp + 0x2c]
mov eax, 0x20
movzx esi, ax
lea edi, [ecx + ebx*2]
mov eax, esi
shl esi, 0x10
or eax, esi
mov ecx, edx
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
add ebx, edx
rep stosw word es:[edi], ax
mov dword [esp + 0x18], ebx
mov edi, edx
mov ecx, dword [esp + 0x1c]
xor esi, esi
test ecx, ecx
jle 0x49c872
mov edx, dword [esp + 0x20]
movzx eax, word [edx + esi*2]
mov edx, 9
cmp dx, ax
je 0x49c6ff
mov edx, 0x20
cmp dx, ax
jne 0x49c709
inc esi
cmp esi, ecx
jl 0x49c6e3
jmp 0x49c872
cmp esi, ecx
jge 0x49c872
mov eax, dword [esp + 0x20]
movzx eax, word [eax + esi*2]
mov ecx, 9
cmp cx, ax
jne 0x49c77a
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [eax + 0x10c]
mov eax, edi
cdq
idiv ecx
sub ecx, edx
mov edx, ecx
add edi, edx
mov dword [esp + 0x10], edi
test edx, edx
jle 0x49c867
mov ecx, dword [esp + 0x2c]
lea edi, [ecx + ebx*2]
mov eax, 0x20
movzx ebx, ax
mov eax, ebx
shl ebx, 0x10
or eax, ebx
mov ebx, dword [esp + 0x18]
mov ecx, edx
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov edi, dword [esp + 0x10]
add ebx, edx
jmp 0x49c863
test byte [0x5c3e2b], 1
movzx eax, ax
jne 0x49cab2
movzx edx, ax
movzx eax, ax
cmp word [eax*2 + 0x5c3e38], 0
mov dword [esp + 0x5c], edx
jne 0x49c7dc
mov edx, dword [0x5e3e3c]
lea eax, [esp + 0x68]
push eax
push 1
lea ecx, [esp + 0x64]
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3e30], 0
je 0x49c7ca
mov eax, dword [0x5c3e14]
sub dword [esp + 0x68], eax
movzx eax, word [esp + 0x5c]
mov cx, word [esp + 0x68]
mov word [eax*2 + 0x5c3e38], cx
cmp word [0x5c3f28], 0
movzx edx, word [eax*2 + 0x5c3e38]
mov eax, 0x78
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], eax
jne 0x49c83a
mov edx, dword [0x5e3e3c]
lea eax, [esp + 0x60]
push eax
push 1
lea ecx, [esp + 0x38]
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x5c3e30], 0
je 0x49c826
mov eax, dword [0x5c3e14]
sub dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
mov dx, word [esp + 0x60]
movzx ecx, ax
mov word [ecx*2 + 0x5c3e38], dx
movzx eax, ax
movzx ecx, word [eax*2 + 0x5c3e38]
add ecx, ecx
cmp dword [esp + 0x24], ecx
jge 0x49cac5
inc edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov cx, word [eax + esi*2]
mov word [edx + ebx*2], cx
inc ebx
mov dword [esp + 0x18], ebx
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x49c711
cmp dword [esp + 0x3c], 0
mov edx, dword [esp + 0x28]
je 0x49c8e6
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xa0]
mov eax, dword [ecx + 0x1b8]
mov esi, dword [ecx + 0x31c]
mov ecx, dword [ecx + 0x1a8]
add eax, edx
lea eax, [eax + eax*8]
mov eax, dword [esi + eax*4]
dec eax
lea esi, [edx + edx*2]
cmp dword [ecx + esi*4 + 4], eax
jge 0x49c8e6
cmp edi, dword [esp + 0x38]
jge 0x49c8e6
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
sub eax, edi
lea esi, [edx + ebx*2]
mov edx, eax
mov eax, 0x20
mov edi, esi
movzx esi, ax
mov eax, esi
shl esi, 0x10
mov ecx, edx
or eax, esi
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
add ebx, edx
mov edx, dword [esp + 0x28]
rep stosw word es:[edi], ax
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0x34]
cmp edx, ecx
jl 0x49c8f5
cmp dword [esp + 0x3c], 0
je 0x49c911
mov eax, dword [esp + 0x2c]
mov esi, 0xd
mov word [eax + ebx*2], si
inc ebx
mov esi, 0xa
mov word [eax + ebx*2], si
inc ebx
mov dword [esp + 0x18], ebx
inc edx
cmp edx, ecx
mov dword [esp + 0x28], edx
jle 0x49c396
mov eax, dword [esp + 0x54]
push eax
call fcn.004ff267
mov edx, dword [esp + 0x30]
xor ecx, ecx
add esp, 4
mov word [edx + ebx*2], cx
cmp dword [esp + 0x3c], ecx
je 0x49cacd
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xa0]
mov ecx, dword [eax + 0x1b8]
mov edx, dword [eax + 0x31c]
mov eax, dword [eax + 0x1a8]
lea ecx, [ecx + ecx*8]
mov esi, dword [edx + ecx*4]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + ecx*2]
mov edi, dword [eax + ecx*4]
dec esi
cmp edi, esi
mov eax, edi
jl 0x49c97a
mov eax, esi
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xa0]
mov ecx, dword [ecx + 0x10c]
push ecx
push eax
push edx
call fcn.00485940
mov edx, dword [esp + 0x20]
sub eax, dword [edx + 0x80]
add esp, 0xc
cmp edi, esi
jle 0x49c9a7
sub edi, esi
add eax, edi
mov ecx, dword [0x5c3e08]
imul ecx, eax
mov dword [esp + 0x58], ecx
mov ecx, edx
mov eax, dword [ecx + 0xa0]
mov edi, dword [eax + 0x1b8]
sub edi, dword [ecx + 0x7c]
mov ecx, dword [eax + 0x1bc]
mov edx, dword [eax + 0x31c]
imul edi, dword [0x5c3df4]
mov eax, dword [eax + 0x1a8]
lea ecx, [ecx + ecx*8]
mov esi, dword [edx + ecx*4]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [eax + ecx + 4]
dec esi
cmp ecx, esi
mov dword [esp + 0x44], ecx
jl 0x49ca08
mov ecx, esi
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xa0]
mov eax, dword [eax + 0x10c]
push eax
push ecx
push edx
call fcn.00485940
mov ecx, dword [esp + 0x20]
sub eax, dword [ecx + 0x80]
add esp, 0xc
cmp dword [esp + 0x44], esi
mov dword [esp + 0x50], eax
jle 0x49ca43
mov ecx, dword [esp + 0x44]
sub ecx, esi
add eax, ecx
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0xa0]
mov edx, dword [esi + 0x1a8]
mov eax, dword [esp + 0x5c]
mov edx, dword [edx + eax + 8]
add edx, dword [esp + 0x50]
mov esi, dword [esi + 0x1bc]
imul edx, dword [0x5c3e08]
sub esi, dword [ecx + 0x7c]
push 0
imul esi, dword [0x5c3df4]
push 1
push 0
push 1
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x3c]
push ebx
push edx
call fcn.0049b680
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
push 1
push esi
mov esi, dword [esp + 0x1c]
push eax
push edi
push ecx
mov ecx, esi
call fcn.00499450
mov ecx, esi
call fcn.0048fca0
jmp 0x49cbbc
add eax, 0xffffd180
mov edx, 0xcc59
cmp ax, dx
ja 0x49c851
add edi, 2
jmp 0x49c852
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 0x8c]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
push 0
push edx
mov edx, dword [esp + 0x60]
push ebx
mov ebx, dword [esp + 0x50]
push eax
push edi
push ebx
push ecx
mov ecx, dword [esi + 0xa0]
push edx
call fcn.00481920
test ebx, ebx
jle 0x49cb16
mov eax, dword [esi + 0xa0]
mov edx, dword [eax + 0x31c]
lea ecx, [edi + edi*8]
mov ebx, dword [edx + ecx*4]
dec ebx
mov eax, dword [esi + 0xa0]
cmp dword [eax + 0x100], 0
push 0
push 0
je 0x49cb7c
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x50]
mov dword [eax + 0x194], ecx
mov ecx, 1
mov dword [eax + 0x1a0], ecx
mov dword [eax + 0x100], ecx
mov dword [eax + 0x190], edx
mov dword [eax + 0x19c], ebx
mov dword [eax + 0x198], edi
mov eax, dword [esi + 0xa0]
mov dword [eax + 0x178], edi
mov edx, dword [esi + 0xa0]
push ecx
mov ecx, esi
mov dword [edx + 0x17c], ebx
call fcn.004958c0
jmp 0x49cbbc
push 0
mov ecx, esi
call fcn.004958c0
cmp dword [esi + 0x78], 0
mov edi, dword [0x5ed7cc]
jle 0x49cb9b
mov dword [0x5ed7cc], 1
mov eax, dword [esi + 0x160]
add eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x15c]
add ecx, dword [esi + 0x64]
push eax
push ecx
mov ecx, esi
call fcn.00496210
mov dword [0x5ed7cc], edi
mov edx, dword [esp + 0x2c]
push edx
call fcn.004ff267
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4